summaryrefslogtreecommitdiff
path: root/pango/mini-fribidi/fribidi.c
diff options
context:
space:
mode:
authorBehdad Esfahbod <behdad@gnome.org>2005-12-05 20:22:24 +0000
committerBehdad Esfahbod <behdad@src.gnome.org>2005-12-05 20:22:24 +0000
commitc574499f78c820c3057e017754ae38da2bcf4299 (patch)
tree71b840bf812129b93263d5d597f963ba06362d0c /pango/mini-fribidi/fribidi.c
parent8d74e8313c49bfcad0c957274048daba94f067df (diff)
downloadpango-c574499f78c820c3057e017754ae38da2bcf4299.tar.gz
Use new g_slice API for TypeLink allocation, instead of GMemChunks.
2005-12-05 Behdad Esfahbod <behdad@gnome.org> * pango/mini-fribidi/fribidi.c, pango/mini-fribidi/fribidi_config.h, pango/mini-fribidi/fribidi.patch: Use new g_slice API for TypeLink allocation, instead of GMemChunks. * configure.in: Bump required glib version to 2.9.1.
Diffstat (limited to 'pango/mini-fribidi/fribidi.c')
-rw-r--r--pango/mini-fribidi/fribidi.c59
1 files changed, 3 insertions, 56 deletions
diff --git a/pango/mini-fribidi/fribidi.c b/pango/mini-fribidi/fribidi.c
index 4d9c0b98..e38dbad2 100644
--- a/pango/mini-fribidi/fribidi.c
+++ b/pango/mini-fribidi/fribidi.c
@@ -67,54 +67,20 @@ typedef struct
}
LevelInfo;
-#ifndef USE_SIMPLE_MALLOC
-static TypeLink *free_type_links = NULL;
-#endif
-
static TypeLink *
new_type_link (void)
{
TypeLink *link;
-#ifdef USE_SIMPLE_MALLOC
- link = malloc (sizeof (TypeLink));
-#else /* !USE_SIMPLE_MALLOC */
- if (free_type_links)
- {
- link = free_type_links;
- free_type_links = free_type_links->next;
- }
- else
- {
- static FriBidiMemChunk *mem_chunk = NULL;
-
- if (!mem_chunk)
- mem_chunk = fribidi_mem_chunk_create (TypeLink,
- FRIBIDI_CHUNK_SIZE,
- FRIBIDI_ALLOC_ONLY);
+ link = g_slice_new0 (TypeLink);
- link = fribidi_chunk_new (TypeLink,
- mem_chunk);
- }
-#endif /* !USE_SIMPLE_MALLOC */
-
- link->len = 0;
- link->pos = 0;
- link->level = 0;
- link->next = NULL;
- link->prev = NULL;
return link;
}
static void
free_type_link (TypeLink *link)
{
-#ifdef USE_SIMPLE_MALLOC
- free (link);
-#else
- link->next = free_type_links;
- free_type_links = link;
-#endif
+ g_slice_free (TypeLink, link);
}
#define FRIBIDI_ADD_TYPE_LINK(p,q) \
@@ -391,9 +357,6 @@ compact_neutrals (TypeLink *list)
static void
free_rl_list (TypeLink *type_rl_list)
{
-
- TypeLink *pp;
-
DBG ("Entering free_rl_list()\n");
if (!type_rl_list)
@@ -402,23 +365,7 @@ free_rl_list (TypeLink *type_rl_list)
return;
}
-#ifdef USE_SIMPLE_MALLOC
- pp = type_rl_list;
- while (pp)
- {
- TypeLink *p;
-
- p = pp;
- pp = pp->next;
- free_type_link (p);
- };
-#else
- for (pp = type_rl_list->next; pp->next; pp = pp->next)
- /* Nothing */ ;
- pp->next = free_type_links;
- free_type_links = type_rl_list;
- type_rl_list = NULL;
-#endif
+ g_slice_free_chain (TypeLink, type_rl_list, next);
DBG ("Leaving free_rl_list()\n");
return;