mirror of
https://gitlab.gnome.org/GNOME/glib.git
synced 2025-10-03 04:09:20 +02:00
added GFreeFunc and g_hash_table_set_key_freefunc() prototype. added
Tue Nov 24 14:05:47 EST 1998 Michael K. Johnson <johnsonm@redhat.com> * glib.h: added GFreeFunc and g_hash_table_set_key_freefunc() prototype. * ghash.c: added g_hash_table_set_key_freefunc() implementation. Modified the prototypes of the functions g_hash_node_destroy() and g_hash_nodes_destroy(), and changed the functions that call them to match the new definitions. This changes no external interfaces, and should create no binary or source incompatibilities. It does add a member to the GHashTable structure.
This commit is contained in:
committed by
Michael Johnson
parent
9c1692c260
commit
3568d22b53
12
ChangeLog
12
ChangeLog
@@ -1,3 +1,15 @@
|
|||||||
|
Tue Nov 24 14:05:47 EST 1998 Michael K. Johnson <johnsonm@redhat.com>
|
||||||
|
|
||||||
|
* glib.h: added GFreeFunc and g_hash_table_set_key_freefunc()
|
||||||
|
prototype.
|
||||||
|
* ghash.c: added g_hash_table_set_key_freefunc() implementation.
|
||||||
|
Modified the prototypes of the functions g_hash_node_destroy() and
|
||||||
|
g_hash_nodes_destroy(), and changed the functions that call them
|
||||||
|
to match the new definitions.
|
||||||
|
This changes no external interfaces, and should create no binary
|
||||||
|
or source incompatibilities. It does add a member to the
|
||||||
|
GHashTable structure.
|
||||||
|
|
||||||
Tue Nov 24 09:40:00 1998 Tim Janik <timj@gtk.org>
|
Tue Nov 24 09:40:00 1998 Tim Janik <timj@gtk.org>
|
||||||
|
|
||||||
* glib.h: removed the GListAllocator type and its g_*_allocator_*()
|
* glib.h: removed the GListAllocator type and its g_*_allocator_*()
|
||||||
|
@@ -1,3 +1,15 @@
|
|||||||
|
Tue Nov 24 14:05:47 EST 1998 Michael K. Johnson <johnsonm@redhat.com>
|
||||||
|
|
||||||
|
* glib.h: added GFreeFunc and g_hash_table_set_key_freefunc()
|
||||||
|
prototype.
|
||||||
|
* ghash.c: added g_hash_table_set_key_freefunc() implementation.
|
||||||
|
Modified the prototypes of the functions g_hash_node_destroy() and
|
||||||
|
g_hash_nodes_destroy(), and changed the functions that call them
|
||||||
|
to match the new definitions.
|
||||||
|
This changes no external interfaces, and should create no binary
|
||||||
|
or source incompatibilities. It does add a member to the
|
||||||
|
GHashTable structure.
|
||||||
|
|
||||||
Tue Nov 24 09:40:00 1998 Tim Janik <timj@gtk.org>
|
Tue Nov 24 09:40:00 1998 Tim Janik <timj@gtk.org>
|
||||||
|
|
||||||
* glib.h: removed the GListAllocator type and its g_*_allocator_*()
|
* glib.h: removed the GListAllocator type and its g_*_allocator_*()
|
||||||
|
@@ -1,3 +1,15 @@
|
|||||||
|
Tue Nov 24 14:05:47 EST 1998 Michael K. Johnson <johnsonm@redhat.com>
|
||||||
|
|
||||||
|
* glib.h: added GFreeFunc and g_hash_table_set_key_freefunc()
|
||||||
|
prototype.
|
||||||
|
* ghash.c: added g_hash_table_set_key_freefunc() implementation.
|
||||||
|
Modified the prototypes of the functions g_hash_node_destroy() and
|
||||||
|
g_hash_nodes_destroy(), and changed the functions that call them
|
||||||
|
to match the new definitions.
|
||||||
|
This changes no external interfaces, and should create no binary
|
||||||
|
or source incompatibilities. It does add a member to the
|
||||||
|
GHashTable structure.
|
||||||
|
|
||||||
Tue Nov 24 09:40:00 1998 Tim Janik <timj@gtk.org>
|
Tue Nov 24 09:40:00 1998 Tim Janik <timj@gtk.org>
|
||||||
|
|
||||||
* glib.h: removed the GListAllocator type and its g_*_allocator_*()
|
* glib.h: removed the GListAllocator type and its g_*_allocator_*()
|
||||||
|
@@ -1,3 +1,15 @@
|
|||||||
|
Tue Nov 24 14:05:47 EST 1998 Michael K. Johnson <johnsonm@redhat.com>
|
||||||
|
|
||||||
|
* glib.h: added GFreeFunc and g_hash_table_set_key_freefunc()
|
||||||
|
prototype.
|
||||||
|
* ghash.c: added g_hash_table_set_key_freefunc() implementation.
|
||||||
|
Modified the prototypes of the functions g_hash_node_destroy() and
|
||||||
|
g_hash_nodes_destroy(), and changed the functions that call them
|
||||||
|
to match the new definitions.
|
||||||
|
This changes no external interfaces, and should create no binary
|
||||||
|
or source incompatibilities. It does add a member to the
|
||||||
|
GHashTable structure.
|
||||||
|
|
||||||
Tue Nov 24 09:40:00 1998 Tim Janik <timj@gtk.org>
|
Tue Nov 24 09:40:00 1998 Tim Janik <timj@gtk.org>
|
||||||
|
|
||||||
* glib.h: removed the GListAllocator type and its g_*_allocator_*()
|
* glib.h: removed the GListAllocator type and its g_*_allocator_*()
|
||||||
|
@@ -1,3 +1,15 @@
|
|||||||
|
Tue Nov 24 14:05:47 EST 1998 Michael K. Johnson <johnsonm@redhat.com>
|
||||||
|
|
||||||
|
* glib.h: added GFreeFunc and g_hash_table_set_key_freefunc()
|
||||||
|
prototype.
|
||||||
|
* ghash.c: added g_hash_table_set_key_freefunc() implementation.
|
||||||
|
Modified the prototypes of the functions g_hash_node_destroy() and
|
||||||
|
g_hash_nodes_destroy(), and changed the functions that call them
|
||||||
|
to match the new definitions.
|
||||||
|
This changes no external interfaces, and should create no binary
|
||||||
|
or source incompatibilities. It does add a member to the
|
||||||
|
GHashTable structure.
|
||||||
|
|
||||||
Tue Nov 24 09:40:00 1998 Tim Janik <timj@gtk.org>
|
Tue Nov 24 09:40:00 1998 Tim Janik <timj@gtk.org>
|
||||||
|
|
||||||
* glib.h: removed the GListAllocator type and its g_*_allocator_*()
|
* glib.h: removed the GListAllocator type and its g_*_allocator_*()
|
||||||
|
@@ -1,3 +1,15 @@
|
|||||||
|
Tue Nov 24 14:05:47 EST 1998 Michael K. Johnson <johnsonm@redhat.com>
|
||||||
|
|
||||||
|
* glib.h: added GFreeFunc and g_hash_table_set_key_freefunc()
|
||||||
|
prototype.
|
||||||
|
* ghash.c: added g_hash_table_set_key_freefunc() implementation.
|
||||||
|
Modified the prototypes of the functions g_hash_node_destroy() and
|
||||||
|
g_hash_nodes_destroy(), and changed the functions that call them
|
||||||
|
to match the new definitions.
|
||||||
|
This changes no external interfaces, and should create no binary
|
||||||
|
or source incompatibilities. It does add a member to the
|
||||||
|
GHashTable structure.
|
||||||
|
|
||||||
Tue Nov 24 09:40:00 1998 Tim Janik <timj@gtk.org>
|
Tue Nov 24 09:40:00 1998 Tim Janik <timj@gtk.org>
|
||||||
|
|
||||||
* glib.h: removed the GListAllocator type and its g_*_allocator_*()
|
* glib.h: removed the GListAllocator type and its g_*_allocator_*()
|
||||||
|
@@ -1,3 +1,15 @@
|
|||||||
|
Tue Nov 24 14:05:47 EST 1998 Michael K. Johnson <johnsonm@redhat.com>
|
||||||
|
|
||||||
|
* glib.h: added GFreeFunc and g_hash_table_set_key_freefunc()
|
||||||
|
prototype.
|
||||||
|
* ghash.c: added g_hash_table_set_key_freefunc() implementation.
|
||||||
|
Modified the prototypes of the functions g_hash_node_destroy() and
|
||||||
|
g_hash_nodes_destroy(), and changed the functions that call them
|
||||||
|
to match the new definitions.
|
||||||
|
This changes no external interfaces, and should create no binary
|
||||||
|
or source incompatibilities. It does add a member to the
|
||||||
|
GHashTable structure.
|
||||||
|
|
||||||
Tue Nov 24 09:40:00 1998 Tim Janik <timj@gtk.org>
|
Tue Nov 24 09:40:00 1998 Tim Janik <timj@gtk.org>
|
||||||
|
|
||||||
* glib.h: removed the GListAllocator type and its g_*_allocator_*()
|
* glib.h: removed the GListAllocator type and its g_*_allocator_*()
|
||||||
|
@@ -1,3 +1,15 @@
|
|||||||
|
Tue Nov 24 14:05:47 EST 1998 Michael K. Johnson <johnsonm@redhat.com>
|
||||||
|
|
||||||
|
* glib.h: added GFreeFunc and g_hash_table_set_key_freefunc()
|
||||||
|
prototype.
|
||||||
|
* ghash.c: added g_hash_table_set_key_freefunc() implementation.
|
||||||
|
Modified the prototypes of the functions g_hash_node_destroy() and
|
||||||
|
g_hash_nodes_destroy(), and changed the functions that call them
|
||||||
|
to match the new definitions.
|
||||||
|
This changes no external interfaces, and should create no binary
|
||||||
|
or source incompatibilities. It does add a member to the
|
||||||
|
GHashTable structure.
|
||||||
|
|
||||||
Tue Nov 24 09:40:00 1998 Tim Janik <timj@gtk.org>
|
Tue Nov 24 09:40:00 1998 Tim Janik <timj@gtk.org>
|
||||||
|
|
||||||
* glib.h: removed the GListAllocator type and its g_*_allocator_*()
|
* glib.h: removed the GListAllocator type and its g_*_allocator_*()
|
||||||
|
32
ghash.c
32
ghash.c
@@ -40,6 +40,7 @@ struct _GHashTable
|
|||||||
GHashNode **nodes;
|
GHashNode **nodes;
|
||||||
GHashFunc hash_func;
|
GHashFunc hash_func;
|
||||||
GCompareFunc key_compare_func;
|
GCompareFunc key_compare_func;
|
||||||
|
GFreeFunc *free_func;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
@@ -48,8 +49,10 @@ static GHashNode** g_hash_table_lookup_node (GHashTable *hash_table,
|
|||||||
gconstpointer key);
|
gconstpointer key);
|
||||||
static GHashNode* g_hash_node_new (gpointer key,
|
static GHashNode* g_hash_node_new (gpointer key,
|
||||||
gpointer value);
|
gpointer value);
|
||||||
static void g_hash_node_destroy (GHashNode *hash_node);
|
static void g_hash_node_destroy (GHashNode *hash_node,
|
||||||
static void g_hash_nodes_destroy (GHashNode *hash_node);
|
GFreeFunc *free_func);
|
||||||
|
static void g_hash_nodes_destroy (GHashNode *hash_node,
|
||||||
|
GFreeFunc *free_func);
|
||||||
|
|
||||||
|
|
||||||
static GMemChunk *node_mem_chunk = NULL;
|
static GMemChunk *node_mem_chunk = NULL;
|
||||||
@@ -70,6 +73,7 @@ g_hash_table_new (GHashFunc hash_func,
|
|||||||
hash_table->hash_func = hash_func ? hash_func : g_direct_hash;
|
hash_table->hash_func = hash_func ? hash_func : g_direct_hash;
|
||||||
hash_table->key_compare_func = key_compare_func;
|
hash_table->key_compare_func = key_compare_func;
|
||||||
hash_table->nodes = g_new (GHashNode*, hash_table->size);
|
hash_table->nodes = g_new (GHashNode*, hash_table->size);
|
||||||
|
hash_table->free_func = NULL;
|
||||||
|
|
||||||
for (i = 0; i < hash_table->size; i++)
|
for (i = 0; i < hash_table->size; i++)
|
||||||
hash_table->nodes[i] = NULL;
|
hash_table->nodes[i] = NULL;
|
||||||
@@ -85,7 +89,7 @@ g_hash_table_destroy (GHashTable *hash_table)
|
|||||||
g_return_if_fail (hash_table != NULL);
|
g_return_if_fail (hash_table != NULL);
|
||||||
|
|
||||||
for (i = 0; i < hash_table->size; i++)
|
for (i = 0; i < hash_table->size; i++)
|
||||||
g_hash_nodes_destroy (hash_table->nodes[i]);
|
g_hash_nodes_destroy (hash_table->nodes[i], hash_table->free_func);
|
||||||
|
|
||||||
g_free (hash_table->nodes);
|
g_free (hash_table->nodes);
|
||||||
g_free (hash_table);
|
g_free (hash_table);
|
||||||
@@ -170,7 +174,7 @@ g_hash_table_remove (GHashTable *hash_table,
|
|||||||
{
|
{
|
||||||
dest = *node;
|
dest = *node;
|
||||||
(*node) = dest->next;
|
(*node) = dest->next;
|
||||||
g_hash_node_destroy (dest);
|
g_hash_node_destroy (dest, hash_table->free_func);
|
||||||
hash_table->nnodes--;
|
hash_table->nnodes--;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -249,13 +253,13 @@ g_hash_table_foreach_remove (GHashTable *hash_table,
|
|||||||
if (prev)
|
if (prev)
|
||||||
{
|
{
|
||||||
prev->next = node->next;
|
prev->next = node->next;
|
||||||
g_hash_node_destroy (node);
|
g_hash_node_destroy (node, hash_table->free_func);
|
||||||
node = prev;
|
node = prev;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
hash_table->nodes[i] = node->next;
|
hash_table->nodes[i] = node->next;
|
||||||
g_hash_node_destroy (node);
|
g_hash_node_destroy (node, hash_table->free_func);
|
||||||
goto restart;
|
goto restart;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -293,6 +297,12 @@ g_hash_table_size (GHashTable *hash_table)
|
|||||||
return hash_table->nnodes;
|
return hash_table->nnodes;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
g_hash_table_set_key_freefunc (GHashTable *hash_table, GFreeFunc *free_func)
|
||||||
|
{
|
||||||
|
hash_table->free_func = free_func;
|
||||||
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
g_hash_table_resize (GHashTable *hash_table)
|
g_hash_table_resize (GHashTable *hash_table)
|
||||||
{
|
{
|
||||||
@@ -361,14 +371,15 @@ g_hash_node_new (gpointer key,
|
|||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
g_hash_node_destroy (GHashNode *hash_node)
|
g_hash_node_destroy (GHashNode *hash_node, GFreeFunc *free_func)
|
||||||
{
|
{
|
||||||
|
if (free_func) (*free_func)(hash_node->key);
|
||||||
hash_node->next = node_free_list;
|
hash_node->next = node_free_list;
|
||||||
node_free_list = hash_node;
|
node_free_list = hash_node;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
g_hash_nodes_destroy (GHashNode *hash_node)
|
g_hash_nodes_destroy (GHashNode *hash_node, GFreeFunc *free_func)
|
||||||
{
|
{
|
||||||
GHashNode *node;
|
GHashNode *node;
|
||||||
|
|
||||||
@@ -378,7 +389,10 @@ g_hash_nodes_destroy (GHashNode *hash_node)
|
|||||||
node = hash_node;
|
node = hash_node;
|
||||||
|
|
||||||
while (node->next)
|
while (node->next)
|
||||||
node = node->next;
|
{
|
||||||
|
if (free_func) (*free_func)(node->key);
|
||||||
|
node = node->next;
|
||||||
|
}
|
||||||
|
|
||||||
node->next = node_free_list;
|
node->next = node_free_list;
|
||||||
node_free_list = hash_node;
|
node_free_list = hash_node;
|
||||||
|
3
glib.h
3
glib.h
@@ -779,6 +779,7 @@ typedef void (*GDataForeachFunc) (GQuark key_id,
|
|||||||
typedef void (*GFunc) (gpointer data,
|
typedef void (*GFunc) (gpointer data,
|
||||||
gpointer user_data);
|
gpointer user_data);
|
||||||
typedef guint (*GHashFunc) (gconstpointer key);
|
typedef guint (*GHashFunc) (gconstpointer key);
|
||||||
|
typedef void (*GFreeFunc) (gpointer data);
|
||||||
typedef void (*GHFunc) (gpointer key,
|
typedef void (*GHFunc) (gpointer key,
|
||||||
gpointer value,
|
gpointer value,
|
||||||
gpointer user_data);
|
gpointer user_data);
|
||||||
@@ -986,6 +987,8 @@ gint g_hash_table_foreach_remove (GHashTable *hash_table,
|
|||||||
GHRFunc func,
|
GHRFunc func,
|
||||||
gpointer user_data);
|
gpointer user_data);
|
||||||
gint g_hash_table_size (GHashTable *hash_table);
|
gint g_hash_table_size (GHashTable *hash_table);
|
||||||
|
void g_hash_table_set_key_freefunc (GHashTable *hash_table,
|
||||||
|
GFreeFunc *free_func);
|
||||||
|
|
||||||
|
|
||||||
/* Caches
|
/* Caches
|
||||||
|
32
glib/ghash.c
32
glib/ghash.c
@@ -40,6 +40,7 @@ struct _GHashTable
|
|||||||
GHashNode **nodes;
|
GHashNode **nodes;
|
||||||
GHashFunc hash_func;
|
GHashFunc hash_func;
|
||||||
GCompareFunc key_compare_func;
|
GCompareFunc key_compare_func;
|
||||||
|
GFreeFunc *free_func;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
@@ -48,8 +49,10 @@ static GHashNode** g_hash_table_lookup_node (GHashTable *hash_table,
|
|||||||
gconstpointer key);
|
gconstpointer key);
|
||||||
static GHashNode* g_hash_node_new (gpointer key,
|
static GHashNode* g_hash_node_new (gpointer key,
|
||||||
gpointer value);
|
gpointer value);
|
||||||
static void g_hash_node_destroy (GHashNode *hash_node);
|
static void g_hash_node_destroy (GHashNode *hash_node,
|
||||||
static void g_hash_nodes_destroy (GHashNode *hash_node);
|
GFreeFunc *free_func);
|
||||||
|
static void g_hash_nodes_destroy (GHashNode *hash_node,
|
||||||
|
GFreeFunc *free_func);
|
||||||
|
|
||||||
|
|
||||||
static GMemChunk *node_mem_chunk = NULL;
|
static GMemChunk *node_mem_chunk = NULL;
|
||||||
@@ -70,6 +73,7 @@ g_hash_table_new (GHashFunc hash_func,
|
|||||||
hash_table->hash_func = hash_func ? hash_func : g_direct_hash;
|
hash_table->hash_func = hash_func ? hash_func : g_direct_hash;
|
||||||
hash_table->key_compare_func = key_compare_func;
|
hash_table->key_compare_func = key_compare_func;
|
||||||
hash_table->nodes = g_new (GHashNode*, hash_table->size);
|
hash_table->nodes = g_new (GHashNode*, hash_table->size);
|
||||||
|
hash_table->free_func = NULL;
|
||||||
|
|
||||||
for (i = 0; i < hash_table->size; i++)
|
for (i = 0; i < hash_table->size; i++)
|
||||||
hash_table->nodes[i] = NULL;
|
hash_table->nodes[i] = NULL;
|
||||||
@@ -85,7 +89,7 @@ g_hash_table_destroy (GHashTable *hash_table)
|
|||||||
g_return_if_fail (hash_table != NULL);
|
g_return_if_fail (hash_table != NULL);
|
||||||
|
|
||||||
for (i = 0; i < hash_table->size; i++)
|
for (i = 0; i < hash_table->size; i++)
|
||||||
g_hash_nodes_destroy (hash_table->nodes[i]);
|
g_hash_nodes_destroy (hash_table->nodes[i], hash_table->free_func);
|
||||||
|
|
||||||
g_free (hash_table->nodes);
|
g_free (hash_table->nodes);
|
||||||
g_free (hash_table);
|
g_free (hash_table);
|
||||||
@@ -170,7 +174,7 @@ g_hash_table_remove (GHashTable *hash_table,
|
|||||||
{
|
{
|
||||||
dest = *node;
|
dest = *node;
|
||||||
(*node) = dest->next;
|
(*node) = dest->next;
|
||||||
g_hash_node_destroy (dest);
|
g_hash_node_destroy (dest, hash_table->free_func);
|
||||||
hash_table->nnodes--;
|
hash_table->nnodes--;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -249,13 +253,13 @@ g_hash_table_foreach_remove (GHashTable *hash_table,
|
|||||||
if (prev)
|
if (prev)
|
||||||
{
|
{
|
||||||
prev->next = node->next;
|
prev->next = node->next;
|
||||||
g_hash_node_destroy (node);
|
g_hash_node_destroy (node, hash_table->free_func);
|
||||||
node = prev;
|
node = prev;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
hash_table->nodes[i] = node->next;
|
hash_table->nodes[i] = node->next;
|
||||||
g_hash_node_destroy (node);
|
g_hash_node_destroy (node, hash_table->free_func);
|
||||||
goto restart;
|
goto restart;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -293,6 +297,12 @@ g_hash_table_size (GHashTable *hash_table)
|
|||||||
return hash_table->nnodes;
|
return hash_table->nnodes;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
g_hash_table_set_key_freefunc (GHashTable *hash_table, GFreeFunc *free_func)
|
||||||
|
{
|
||||||
|
hash_table->free_func = free_func;
|
||||||
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
g_hash_table_resize (GHashTable *hash_table)
|
g_hash_table_resize (GHashTable *hash_table)
|
||||||
{
|
{
|
||||||
@@ -361,14 +371,15 @@ g_hash_node_new (gpointer key,
|
|||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
g_hash_node_destroy (GHashNode *hash_node)
|
g_hash_node_destroy (GHashNode *hash_node, GFreeFunc *free_func)
|
||||||
{
|
{
|
||||||
|
if (free_func) (*free_func)(hash_node->key);
|
||||||
hash_node->next = node_free_list;
|
hash_node->next = node_free_list;
|
||||||
node_free_list = hash_node;
|
node_free_list = hash_node;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
g_hash_nodes_destroy (GHashNode *hash_node)
|
g_hash_nodes_destroy (GHashNode *hash_node, GFreeFunc *free_func)
|
||||||
{
|
{
|
||||||
GHashNode *node;
|
GHashNode *node;
|
||||||
|
|
||||||
@@ -378,7 +389,10 @@ g_hash_nodes_destroy (GHashNode *hash_node)
|
|||||||
node = hash_node;
|
node = hash_node;
|
||||||
|
|
||||||
while (node->next)
|
while (node->next)
|
||||||
node = node->next;
|
{
|
||||||
|
if (free_func) (*free_func)(node->key);
|
||||||
|
node = node->next;
|
||||||
|
}
|
||||||
|
|
||||||
node->next = node_free_list;
|
node->next = node_free_list;
|
||||||
node_free_list = hash_node;
|
node_free_list = hash_node;
|
||||||
|
@@ -779,6 +779,7 @@ typedef void (*GDataForeachFunc) (GQuark key_id,
|
|||||||
typedef void (*GFunc) (gpointer data,
|
typedef void (*GFunc) (gpointer data,
|
||||||
gpointer user_data);
|
gpointer user_data);
|
||||||
typedef guint (*GHashFunc) (gconstpointer key);
|
typedef guint (*GHashFunc) (gconstpointer key);
|
||||||
|
typedef void (*GFreeFunc) (gpointer data);
|
||||||
typedef void (*GHFunc) (gpointer key,
|
typedef void (*GHFunc) (gpointer key,
|
||||||
gpointer value,
|
gpointer value,
|
||||||
gpointer user_data);
|
gpointer user_data);
|
||||||
@@ -986,6 +987,8 @@ gint g_hash_table_foreach_remove (GHashTable *hash_table,
|
|||||||
GHRFunc func,
|
GHRFunc func,
|
||||||
gpointer user_data);
|
gpointer user_data);
|
||||||
gint g_hash_table_size (GHashTable *hash_table);
|
gint g_hash_table_size (GHashTable *hash_table);
|
||||||
|
void g_hash_table_set_key_freefunc (GHashTable *hash_table,
|
||||||
|
GFreeFunc *free_func);
|
||||||
|
|
||||||
|
|
||||||
/* Caches
|
/* Caches
|
||||||
|
Reference in New Issue
Block a user