mirror of
https://gitlab.freedesktop.org/cairo/cairo.git
synced 2026-05-09 03:48:03 +02:00
error: Do not define _cairo_error twice
cairo-perf-trace uses cairo-hash.c, which calls _cairo_error. Instead of redefining it in cairo-perf-trace.c it can be abstracted in a separate source which is directly included in the build of cairo-perf-trace. This avoids visibility issues when compiling cairo-perf-trace with a statically linked cairo library on architectures which do not support hidden visibility (example: win32).
This commit is contained in:
parent
0740c8e4f3
commit
f21ac5b13b
5 changed files with 71 additions and 32 deletions
|
|
@ -81,6 +81,7 @@ libcairoperf_la_SOURCES = \
|
|||
|
||||
cairo_perf_trace_SOURCES = \
|
||||
cairo-perf-trace.c \
|
||||
../src/cairo-error.c \
|
||||
../src/cairo-hash.c
|
||||
if CAIRO_HAS_WIN32_SURFACE
|
||||
cairo_perf_trace_SOURCES += cairo-perf-win32.c
|
||||
|
|
|
|||
|
|
@ -884,9 +884,3 @@ main (int argc,
|
|||
|
||||
return 0;
|
||||
}
|
||||
|
||||
cairo_status_t
|
||||
_cairo_error (cairo_status_t status)
|
||||
{
|
||||
return status;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -123,6 +123,7 @@ cairo_sources = \
|
|||
cairo-composite-rectangles.c \
|
||||
cairo-debug.c \
|
||||
cairo-device.c \
|
||||
cairo-error.c \
|
||||
cairo-fixed.c \
|
||||
cairo-font-face.c \
|
||||
cairo-font-face-twin.c \
|
||||
|
|
|
|||
69
src/cairo-error.c
Normal file
69
src/cairo-error.c
Normal file
|
|
@ -0,0 +1,69 @@
|
|||
/* -*- Mode: c; c-basic-offset: 4; indent-tabs-mode: t; tab-width: 8; -*- */
|
||||
/* cairo - a vector graphics library with display and print output
|
||||
*
|
||||
* Copyright © 2002 University of Southern California
|
||||
* Copyright © 2005 Red Hat, Inc.
|
||||
*
|
||||
* This library is free software; you can redistribute it and/or
|
||||
* modify it either under the terms of the GNU Lesser General Public
|
||||
* License version 2.1 as published by the Free Software Foundation
|
||||
* (the "LGPL") or, at your option, under the terms of the Mozilla
|
||||
* Public License Version 1.1 (the "MPL"). If you do not alter this
|
||||
* notice, a recipient may use your version of this file under either
|
||||
* the MPL or the LGPL.
|
||||
*
|
||||
* You should have received a copy of the LGPL along with this library
|
||||
* in the file COPYING-LGPL-2.1; if not, write to the Free Software
|
||||
* Foundation, Inc., 51 Franklin Street, Suite 500, Boston, MA 02110-1335, USA
|
||||
* You should have received a copy of the MPL along with this library
|
||||
* in the file COPYING-MPL-1.1
|
||||
*
|
||||
* The contents of this file are subject to the Mozilla Public License
|
||||
* Version 1.1 (the "License"); you may not use this file except in
|
||||
* compliance with the License. You may obtain a copy of the License at
|
||||
* http://www.mozilla.org/MPL/
|
||||
*
|
||||
* This software is distributed on an "AS IS" basis, WITHOUT WARRANTY
|
||||
* OF ANY KIND, either express or implied. See the LGPL or the MPL for
|
||||
* the specific language governing rights and limitations.
|
||||
*
|
||||
* The Original Code is the cairo graphics library.
|
||||
*
|
||||
* The Initial Developer of the Original Code is University of Southern
|
||||
* California.
|
||||
*
|
||||
* Contributor(s):
|
||||
* Carl D. Worth <cworth@cworth.org>
|
||||
*/
|
||||
|
||||
#include "cairoint.h"
|
||||
#include "cairo-private.h"
|
||||
|
||||
#include "cairo-error-private.h"
|
||||
#include <assert.h>
|
||||
|
||||
/**
|
||||
* _cairo_error:
|
||||
* @status: a status value indicating an error, (eg. not
|
||||
* %CAIRO_STATUS_SUCCESS)
|
||||
*
|
||||
* Checks that status is an error status, but does nothing else.
|
||||
*
|
||||
* All assignments of an error status to any user-visible object
|
||||
* within the cairo application should result in a call to
|
||||
* _cairo_error().
|
||||
*
|
||||
* The purpose of this function is to allow the user to set a
|
||||
* breakpoint in _cairo_error() to generate a stack trace for when the
|
||||
* user causes cairo to detect an error.
|
||||
*
|
||||
* Return value: the error status.
|
||||
**/
|
||||
cairo_status_t
|
||||
_cairo_error (cairo_status_t status)
|
||||
{
|
||||
CAIRO_ENSURE_UNIQUE;
|
||||
assert (_cairo_status_is_error (status));
|
||||
|
||||
return status;
|
||||
}
|
||||
26
src/cairo.c
26
src/cairo.c
|
|
@ -153,32 +153,6 @@ static const cairo_t _cairo_nil__null_pointer = {
|
|||
};
|
||||
#include <assert.h>
|
||||
|
||||
/**
|
||||
* _cairo_error:
|
||||
* @status: a status value indicating an error, (eg. not
|
||||
* %CAIRO_STATUS_SUCCESS)
|
||||
*
|
||||
* Checks that status is an error status, but does nothing else.
|
||||
*
|
||||
* All assignments of an error status to any user-visible object
|
||||
* within the cairo application should result in a call to
|
||||
* _cairo_error().
|
||||
*
|
||||
* The purpose of this function is to allow the user to set a
|
||||
* breakpoint in _cairo_error() to generate a stack trace for when the
|
||||
* user causes cairo to detect an error.
|
||||
*
|
||||
* Return value: the error status.
|
||||
**/
|
||||
cairo_status_t
|
||||
_cairo_error (cairo_status_t status)
|
||||
{
|
||||
CAIRO_ENSURE_UNIQUE;
|
||||
assert (_cairo_status_is_error (status));
|
||||
|
||||
return status;
|
||||
}
|
||||
|
||||
/**
|
||||
* _cairo_set_error:
|
||||
* @cr: a cairo context
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue