diff options
author | Sebastian Wilhelmi <wilhelmi@ira.uka.de> | 2000-07-20 16:06:33 +0000 |
---|---|---|
committer | Sebastian Wilhelmi <wilhelmi@src.gnome.org> | 2000-07-20 16:06:33 +0000 |
commit | 84114c5321e4d7e4701f77f7f0e2b9b739d4035c (patch) | |
tree | b678c8e9b40afdcf58a322a0e9222d9861ea6f09 /glib | |
parent | 5e4c5611ab37edf414239eb44f9765c2b678e9c4 (diff) | |
download | glib-84114c5321e4d7e4701f77f7f0e2b9b739d4035c.tar.gz |
Mark the functions g_hash_table_freeze, g_hash_table_thaw and thus
2000-07-20 Sebastian Wilhelmi <wilhelmi@ira.uka.de>
* ghash.c, gscanner.c, glib.h: Mark the functions
g_hash_table_freeze, g_hash_table_thaw and thus
g_scanner_freeze_symbol_table and g_scanner_thaw_symbol_table
deprecated. They will issue an warning once, when compiled with
G_ENABLE_DEBUG. This fixes Bug #3883. For discussion see
http://mail.gnome.org/pipermail/gtk-devel-list/2000-April/003139.html
Diffstat (limited to 'glib')
-rw-r--r-- | glib/ghash.c | 28 | ||||
-rw-r--r-- | glib/glib.h | 12 | ||||
-rw-r--r-- | glib/gscanner.c | 16 |
3 files changed, 30 insertions, 26 deletions
diff --git a/glib/ghash.c b/glib/ghash.c index adc3b620a..8b4b048c9 100644 --- a/glib/ghash.c +++ b/glib/ghash.c @@ -48,7 +48,6 @@ struct _GHashTable { gint size; gint nnodes; - guint frozen; GHashNode **nodes; GHashFunc hash_func; GCompareFunc key_compare_func; @@ -80,7 +79,6 @@ g_hash_table_new (GHashFunc hash_func, hash_table = g_new (GHashTable, 1); hash_table->size = HASH_TABLE_MIN_SIZE; hash_table->nnodes = 0; - hash_table->frozen = FALSE; hash_table->hash_func = hash_func ? hash_func : g_direct_hash; hash_table->key_compare_func = key_compare_func; hash_table->nodes = g_new (GHashNode*, hash_table->size); @@ -167,8 +165,7 @@ g_hash_table_insert (GHashTable *hash_table, { *node = g_hash_node_new (key, value); hash_table->nnodes++; - if (!hash_table->frozen) - g_hash_table_resize (hash_table); + g_hash_table_resize (hash_table); } } @@ -189,8 +186,7 @@ g_hash_table_remove (GHashTable *hash_table, g_hash_node_destroy (dest); hash_table->nnodes--; - if (!hash_table->frozen) - g_hash_table_resize (hash_table); + g_hash_table_resize (hash_table); } } @@ -221,19 +217,20 @@ g_hash_table_lookup_extended (GHashTable *hash_table, void g_hash_table_freeze (GHashTable *hash_table) { - g_return_if_fail (hash_table != NULL); - - hash_table->frozen++; +#ifdef G_ENABLE_DEBUG + static gboolean first_call = TRUE; + + if (first_call) + { + g_warning("g_hash_table_freeze and g_hash_table_thaw are deprecated."); + first_call = FALSE; + } +#endif /* G_ENABLE_DEBUG */ } void g_hash_table_thaw (GHashTable *hash_table) { - g_return_if_fail (hash_table != NULL); - - if (hash_table->frozen) - if (!(--hash_table->frozen)) - g_hash_table_resize (hash_table); } guint @@ -278,8 +275,7 @@ g_hash_table_foreach_remove (GHashTable *hash_table, } } - if (!hash_table->frozen) - g_hash_table_resize (hash_table); + g_hash_table_resize (hash_table); return deleted; } diff --git a/glib/glib.h b/glib/glib.h index df8156e0f..732aa0485 100644 --- a/glib/glib.h +++ b/glib/glib.h @@ -1114,8 +1114,6 @@ gboolean g_hash_table_lookup_extended(GHashTable *hash_table, gconstpointer lookup_key, gpointer *orig_key, gpointer *value); -void g_hash_table_freeze (GHashTable *hash_table); -void g_hash_table_thaw (GHashTable *hash_table); void g_hash_table_foreach (GHashTable *hash_table, GHFunc func, gpointer user_data); @@ -1124,6 +1122,10 @@ guint g_hash_table_foreach_remove (GHashTable *hash_table, gpointer user_data); guint g_hash_table_size (GHashTable *hash_table); +/* The following two functions are deprecated and will be removed in + * the next major release. They do no good. */ +void g_hash_table_freeze (GHashTable *hash_table); +void g_hash_table_thaw (GHashTable *hash_table); /* Caches */ @@ -2272,8 +2274,6 @@ void g_scanner_scope_foreach_symbol (GScanner *scanner, gpointer user_data); gpointer g_scanner_lookup_symbol (GScanner *scanner, const gchar *symbol); -void g_scanner_freeze_symbol_table (GScanner *scanner); -void g_scanner_thaw_symbol_table (GScanner *scanner); void g_scanner_unexp_token (GScanner *scanner, GTokenType expected_token, const gchar *identifier_spec, @@ -2299,6 +2299,10 @@ gint g_scanner_stat_mode (const gchar *filename); g_scanner_scope_foreach_symbol ((scanner), 0, (func), (data)); \ } G_STMT_END +/* The following two functions are deprecated and will be removed in + * the next major release. They do no good. */ +void g_scanner_freeze_symbol_table (GScanner *scanner); +void g_scanner_thaw_symbol_table (GScanner *scanner); /* GCompletion */ diff --git a/glib/gscanner.c b/glib/gscanner.c index 55c311dd2..cbc2e1e41 100644 --- a/glib/gscanner.c +++ b/glib/gscanner.c @@ -565,17 +565,21 @@ g_scanner_scope_foreach_symbol (GScanner *scanner, void g_scanner_freeze_symbol_table (GScanner *scanner) { - g_return_if_fail (scanner != NULL); - - g_hash_table_freeze (scanner->symbol_table); +#ifdef G_ENABLE_DEBUG + static gboolean first_call = TRUE; + + if (first_call) + { + g_warning("g_scanner_freeze_symbol_table and " + "g_scanner_thaw_symbol_table are deprecated."); + first_call = FALSE; + } +#endif /* G_ENABLE_DEBUG */ } void g_scanner_thaw_symbol_table (GScanner *scanner) { - g_return_if_fail (scanner != NULL); - - g_hash_table_thaw (scanner->symbol_table); } GTokenType |