From: Tim Janik Date: Sat, 28 Nov 1998 01:54:54 +0000 (+0000) Subject: implemented incremental freezing facility. X-Git-Url: http://git.openbox.org/?a=commitdiff_plain;h=e666e8125f823c75ab0a89e68d73773f24542947;p=dana%2Fcg-glib.git implemented incremental freezing facility. Sat Nov 28 01:23:25 1998 Tim Janik * ghash.c: implemented incremental freezing facility. --- diff --git a/ChangeLog b/ChangeLog index c570ab47..c9eeed9f 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,7 @@ +Sat Nov 28 01:23:25 1998 Tim Janik + + * ghash.c: implemented incremental freezing facility. + Thu Nov 26 01:36:20 1998 Tim Janik * glib.h: diff --git a/ChangeLog.pre-2-0 b/ChangeLog.pre-2-0 index c570ab47..c9eeed9f 100644 --- a/ChangeLog.pre-2-0 +++ b/ChangeLog.pre-2-0 @@ -1,3 +1,7 @@ +Sat Nov 28 01:23:25 1998 Tim Janik + + * ghash.c: implemented incremental freezing facility. + Thu Nov 26 01:36:20 1998 Tim Janik * glib.h: diff --git a/ChangeLog.pre-2-10 b/ChangeLog.pre-2-10 index c570ab47..c9eeed9f 100644 --- a/ChangeLog.pre-2-10 +++ b/ChangeLog.pre-2-10 @@ -1,3 +1,7 @@ +Sat Nov 28 01:23:25 1998 Tim Janik + + * ghash.c: implemented incremental freezing facility. + Thu Nov 26 01:36:20 1998 Tim Janik * glib.h: diff --git a/ChangeLog.pre-2-12 b/ChangeLog.pre-2-12 index c570ab47..c9eeed9f 100644 --- a/ChangeLog.pre-2-12 +++ b/ChangeLog.pre-2-12 @@ -1,3 +1,7 @@ +Sat Nov 28 01:23:25 1998 Tim Janik + + * ghash.c: implemented incremental freezing facility. + Thu Nov 26 01:36:20 1998 Tim Janik * glib.h: diff --git a/ChangeLog.pre-2-2 b/ChangeLog.pre-2-2 index c570ab47..c9eeed9f 100644 --- a/ChangeLog.pre-2-2 +++ b/ChangeLog.pre-2-2 @@ -1,3 +1,7 @@ +Sat Nov 28 01:23:25 1998 Tim Janik + + * ghash.c: implemented incremental freezing facility. + Thu Nov 26 01:36:20 1998 Tim Janik * glib.h: diff --git a/ChangeLog.pre-2-4 b/ChangeLog.pre-2-4 index c570ab47..c9eeed9f 100644 --- a/ChangeLog.pre-2-4 +++ b/ChangeLog.pre-2-4 @@ -1,3 +1,7 @@ +Sat Nov 28 01:23:25 1998 Tim Janik + + * ghash.c: implemented incremental freezing facility. + Thu Nov 26 01:36:20 1998 Tim Janik * glib.h: diff --git a/ChangeLog.pre-2-6 b/ChangeLog.pre-2-6 index c570ab47..c9eeed9f 100644 --- a/ChangeLog.pre-2-6 +++ b/ChangeLog.pre-2-6 @@ -1,3 +1,7 @@ +Sat Nov 28 01:23:25 1998 Tim Janik + + * ghash.c: implemented incremental freezing facility. + Thu Nov 26 01:36:20 1998 Tim Janik * glib.h: diff --git a/ChangeLog.pre-2-8 b/ChangeLog.pre-2-8 index c570ab47..c9eeed9f 100644 --- a/ChangeLog.pre-2-8 +++ b/ChangeLog.pre-2-8 @@ -1,3 +1,7 @@ +Sat Nov 28 01:23:25 1998 Tim Janik + + * ghash.c: implemented incremental freezing facility. + Thu Nov 26 01:36:20 1998 Tim Janik * glib.h: diff --git a/ghash.c b/ghash.c index 0ff5a241..4ab82b3f 100644 --- a/ghash.c +++ b/ghash.c @@ -36,7 +36,7 @@ struct _GHashTable { gint size; gint nnodes; - gint frozen; + guint frozen; GHashNode **nodes; GHashFunc hash_func; GCompareFunc key_compare_func; @@ -207,7 +207,7 @@ g_hash_table_freeze (GHashTable *hash_table) { g_return_if_fail (hash_table != NULL); - hash_table->frozen = TRUE; + hash_table->frozen++; } void @@ -215,9 +215,9 @@ g_hash_table_thaw (GHashTable *hash_table) { g_return_if_fail (hash_table != NULL); - hash_table->frozen = FALSE; - - g_hash_table_resize (hash_table); + if (hash_table->frozen) + if (!(--hash_table->frozen)) + g_hash_table_resize (hash_table); } gint diff --git a/glib/ghash.c b/glib/ghash.c index 0ff5a241..4ab82b3f 100644 --- a/glib/ghash.c +++ b/glib/ghash.c @@ -36,7 +36,7 @@ struct _GHashTable { gint size; gint nnodes; - gint frozen; + guint frozen; GHashNode **nodes; GHashFunc hash_func; GCompareFunc key_compare_func; @@ -207,7 +207,7 @@ g_hash_table_freeze (GHashTable *hash_table) { g_return_if_fail (hash_table != NULL); - hash_table->frozen = TRUE; + hash_table->frozen++; } void @@ -215,9 +215,9 @@ g_hash_table_thaw (GHashTable *hash_table) { g_return_if_fail (hash_table != NULL); - hash_table->frozen = FALSE; - - g_hash_table_resize (hash_table); + if (hash_table->frozen) + if (!(--hash_table->frozen)) + g_hash_table_resize (hash_table); } gint