summaryrefslogtreecommitdiff
path: root/src/cairo-freelist.c
diff options
context:
space:
mode:
authorM Joonas Pihlaja <jpihlaja@cc.helsinki.fi>2009-09-01 20:57:01 +0100
committerM Joonas Pihlaja <jpihlaja@cc.helsinki.fi>2009-09-01 23:30:56 +0300
commit5a3fa29b370816acb3a08d60e4031ed82c1e4c73 (patch)
tree78ed8845b8bad9b60c9bd839f8648c51cac92722 /src/cairo-freelist.c
parent68c8eb955d6d16872c2fa488f0960b974611865d (diff)
downloadcairo-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.c29
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;
-}