diff options
author | M Joonas Pihlaja <jpihlaja@cc.helsinki.fi> | 2009-09-01 20:57:01 +0100 |
---|---|---|
committer | M Joonas Pihlaja <jpihlaja@cc.helsinki.fi> | 2009-09-01 23:30:56 +0300 |
commit | 5a3fa29b370816acb3a08d60e4031ed82c1e4c73 (patch) | |
tree | 78ed8845b8bad9b60c9bd839f8648c51cac92722 /src/cairo-freelist.c | |
parent | 68c8eb955d6d16872c2fa488f0960b974611865d (diff) | |
download | cairo-5a3fa29b370816acb3a08d60e4031ed82c1e4c73.tar.gz |
[freelist] Make _cairo_freepool_alloc_from_new_pool static inline.
The xlib boilerplate includes a cairo private header to be able
to disable usage of the render extension. This indirectly includes
cairo-freelist-private.h which contains a bunch of static inline
functions which use the private _cairo_freepool_alloc_from_new_pool
function, but since that is not inline also, it causes an undefined
extern which cannot be resolved. The binutils linker doesn't care
since the freelist function aren't actually used in the boilerplate
but the Solaris linker does. By making the .._alloc_from_new_pool
function inline no dangling references are created and linking
succeeds.
Diffstat (limited to 'src/cairo-freelist.c')
-rw-r--r-- | src/cairo-freelist.c | 29 |
1 files changed, 0 insertions, 29 deletions
diff --git a/src/cairo-freelist.c b/src/cairo-freelist.c index 6277f9074..e7f3ac2bf 100644 --- a/src/cairo-freelist.c +++ b/src/cairo-freelist.c @@ -20,8 +20,6 @@ * OF THIS SOFTWARE. */ -#include "cairoint.h" - #include "cairo-freelist-private.h" void @@ -111,30 +109,3 @@ _cairo_freepool_fini (cairo_freepool_t *freepool) } VG (VALGRIND_MAKE_MEM_NOACCESS (freepool, sizeof (freepool))); } - -void * -_cairo_freepool_alloc_from_new_pool (cairo_freepool_t *freepool) -{ - cairo_freelist_pool_t *pool; - int poolsize; - - if (freepool->pools != &freepool->embedded_pool) - poolsize = 2 * freepool->pools->size; - else - poolsize = (128 * freepool->nodesize + 8191) & -8192; - pool = malloc (sizeof (cairo_freelist_pool_t) + poolsize); - if (unlikely (pool == NULL)) - return pool; - - pool->next = freepool->pools; - freepool->pools = pool; - - pool->size = poolsize; - pool->rem = poolsize - freepool->nodesize; - pool->data = (uint8_t *) (pool + 1) + freepool->nodesize; - - VG (VALGRIND_MAKE_MEM_NOACCESS (pool->data, poolsize)); - VG (VALGRIND_MAKE_MEM_UNDEFINED (pool->data, freepool->nodesize)); - - return pool + 1; -} |