reverted the g_hash_table_set_key_freefunc() addition, since it's to
authorTim Janik <timj@gtk.org>
Thu, 26 Nov 1998 00:42:14 +0000 (00:42 +0000)
committerTim Janik <timj@src.gnome.org>
Thu, 26 Nov 1998 00:42:14 +0000 (00:42 +0000)
Thu Nov 26 01:36:20 1998  Tim Janik  <timj@gtk.org>

        * glib.h:
        * ghash.c: reverted the g_hash_table_set_key_freefunc() addition,
        since it's to specialized and needs to be resolved in a generic
        fashion.

12 files changed:
ChangeLog
ChangeLog.pre-2-0
ChangeLog.pre-2-10
ChangeLog.pre-2-12
ChangeLog.pre-2-2
ChangeLog.pre-2-4
ChangeLog.pre-2-6
ChangeLog.pre-2-8
ghash.c
glib.h
glib/ghash.c
glib/glib.h

index 52f25c5..c570ab4 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,10 @@
+Thu Nov 26 01:36:20 1998  Tim Janik  <timj@gtk.org>
+
+       * glib.h: 
+       * ghash.c: reverted the g_hash_table_set_key_freefunc() addition,
+       since it's to specialized and needs to be resolved in a generic
+       fashion.
+
 Tue Nov 24 18:57:59 PST 1998 Manish Singh <yosh@gimp.org>
 
        * applied glib-tml-981120-0, change log appended below.
index 52f25c5..c570ab4 100644 (file)
@@ -1,3 +1,10 @@
+Thu Nov 26 01:36:20 1998  Tim Janik  <timj@gtk.org>
+
+       * glib.h: 
+       * ghash.c: reverted the g_hash_table_set_key_freefunc() addition,
+       since it's to specialized and needs to be resolved in a generic
+       fashion.
+
 Tue Nov 24 18:57:59 PST 1998 Manish Singh <yosh@gimp.org>
 
        * applied glib-tml-981120-0, change log appended below.
index 52f25c5..c570ab4 100644 (file)
@@ -1,3 +1,10 @@
+Thu Nov 26 01:36:20 1998  Tim Janik  <timj@gtk.org>
+
+       * glib.h: 
+       * ghash.c: reverted the g_hash_table_set_key_freefunc() addition,
+       since it's to specialized and needs to be resolved in a generic
+       fashion.
+
 Tue Nov 24 18:57:59 PST 1998 Manish Singh <yosh@gimp.org>
 
        * applied glib-tml-981120-0, change log appended below.
index 52f25c5..c570ab4 100644 (file)
@@ -1,3 +1,10 @@
+Thu Nov 26 01:36:20 1998  Tim Janik  <timj@gtk.org>
+
+       * glib.h: 
+       * ghash.c: reverted the g_hash_table_set_key_freefunc() addition,
+       since it's to specialized and needs to be resolved in a generic
+       fashion.
+
 Tue Nov 24 18:57:59 PST 1998 Manish Singh <yosh@gimp.org>
 
        * applied glib-tml-981120-0, change log appended below.
index 52f25c5..c570ab4 100644 (file)
@@ -1,3 +1,10 @@
+Thu Nov 26 01:36:20 1998  Tim Janik  <timj@gtk.org>
+
+       * glib.h: 
+       * ghash.c: reverted the g_hash_table_set_key_freefunc() addition,
+       since it's to specialized and needs to be resolved in a generic
+       fashion.
+
 Tue Nov 24 18:57:59 PST 1998 Manish Singh <yosh@gimp.org>
 
        * applied glib-tml-981120-0, change log appended below.
index 52f25c5..c570ab4 100644 (file)
@@ -1,3 +1,10 @@
+Thu Nov 26 01:36:20 1998  Tim Janik  <timj@gtk.org>
+
+       * glib.h: 
+       * ghash.c: reverted the g_hash_table_set_key_freefunc() addition,
+       since it's to specialized and needs to be resolved in a generic
+       fashion.
+
 Tue Nov 24 18:57:59 PST 1998 Manish Singh <yosh@gimp.org>
 
        * applied glib-tml-981120-0, change log appended below.
index 52f25c5..c570ab4 100644 (file)
@@ -1,3 +1,10 @@
+Thu Nov 26 01:36:20 1998  Tim Janik  <timj@gtk.org>
+
+       * glib.h: 
+       * ghash.c: reverted the g_hash_table_set_key_freefunc() addition,
+       since it's to specialized and needs to be resolved in a generic
+       fashion.
+
 Tue Nov 24 18:57:59 PST 1998 Manish Singh <yosh@gimp.org>
 
        * applied glib-tml-981120-0, change log appended below.
index 52f25c5..c570ab4 100644 (file)
@@ -1,3 +1,10 @@
+Thu Nov 26 01:36:20 1998  Tim Janik  <timj@gtk.org>
+
+       * glib.h: 
+       * ghash.c: reverted the g_hash_table_set_key_freefunc() addition,
+       since it's to specialized and needs to be resolved in a generic
+       fashion.
+
 Tue Nov 24 18:57:59 PST 1998 Manish Singh <yosh@gimp.org>
 
        * applied glib-tml-981120-0, change log appended below.
diff --git a/ghash.c b/ghash.c
index 6fa142b..0ff5a24 100644 (file)
--- a/ghash.c
+++ b/ghash.c
@@ -40,7 +40,6 @@ struct _GHashTable
   GHashNode **nodes;
   GHashFunc hash_func;
   GCompareFunc key_compare_func;
-  GFreeFunc *free_func;
 };
 
 
@@ -49,10 +48,8 @@ static GHashNode**   g_hash_table_lookup_node (GHashTable    *hash_table,
                                                  gconstpointer  key);
 static GHashNode*      g_hash_node_new          (gpointer       key,
                                                  gpointer       value);
-static void            g_hash_node_destroy      (GHashNode     *hash_node,
-                                                 GFreeFunc     *free_func);
-static void            g_hash_nodes_destroy     (GHashNode     *hash_node,
-                                                 GFreeFunc     *free_func);
+static void            g_hash_node_destroy      (GHashNode     *hash_node);
+static void            g_hash_nodes_destroy     (GHashNode     *hash_node);
 
 
 static GMemChunk *node_mem_chunk = NULL;
@@ -73,7 +70,6 @@ g_hash_table_new (GHashFunc    hash_func,
   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);
-  hash_table->free_func = NULL;
   
   for (i = 0; i < hash_table->size; i++)
     hash_table->nodes[i] = NULL;
@@ -89,7 +85,7 @@ g_hash_table_destroy (GHashTable *hash_table)
   g_return_if_fail (hash_table != NULL);
   
   for (i = 0; i < hash_table->size; i++)
-    g_hash_nodes_destroy (hash_table->nodes[i], hash_table->free_func);
+    g_hash_nodes_destroy (hash_table->nodes[i]);
   
   g_free (hash_table->nodes);
   g_free (hash_table);
@@ -174,7 +170,7 @@ g_hash_table_remove (GHashTable          *hash_table,
     {
       dest = *node;
       (*node) = dest->next;
-      g_hash_node_destroy (dest, hash_table->free_func);
+      g_hash_node_destroy (dest);
       hash_table->nnodes--;
     }
   
@@ -253,13 +249,13 @@ g_hash_table_foreach_remove (GHashTable   *hash_table,
              if (prev)
                {
                  prev->next = node->next;
-                 g_hash_node_destroy (node, hash_table->free_func);
+                 g_hash_node_destroy (node);
                  node = prev;
                }
              else
                {
                  hash_table->nodes[i] = node->next;
-                 g_hash_node_destroy (node, hash_table->free_func);
+                 g_hash_node_destroy (node);
                  goto restart;
                }
            }
@@ -297,12 +293,6 @@ g_hash_table_size (GHashTable *hash_table)
   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
 g_hash_table_resize (GHashTable *hash_table)
 {
@@ -371,15 +361,14 @@ g_hash_node_new (gpointer key,
 }
 
 static void
-g_hash_node_destroy (GHashNode *hash_node, GFreeFunc *free_func)
+g_hash_node_destroy (GHashNode *hash_node)
 {
-  if (free_func) (*free_func)(hash_node->key);
   hash_node->next = node_free_list;
   node_free_list = hash_node;
 }
 
 static void
-g_hash_nodes_destroy (GHashNode *hash_node, GFreeFunc *free_func)
+g_hash_nodes_destroy (GHashNode *hash_node)
 {
   GHashNode *node;
   
@@ -389,10 +378,7 @@ g_hash_nodes_destroy (GHashNode *hash_node, GFreeFunc *free_func)
   node = hash_node;
   
   while (node->next)
-    {
-      if (free_func) (*free_func)(node->key);
-      node = node->next;
-    }
+    node = node->next;
   
   node->next = node_free_list;
   node_free_list = hash_node;
diff --git a/glib.h b/glib.h
index a2f4327..39c73f8 100644 (file)
--- a/glib.h
+++ b/glib.h
@@ -960,8 +960,6 @@ gint            g_hash_table_foreach_remove (GHashTable     *hash_table,
                                         GHRFunc         func,
                                         gpointer        user_data);
 gint       g_hash_table_size           (GHashTable     *hash_table);
-void       g_hash_table_set_key_freefunc (GHashTable   *hash_table,
-                                        GFreeFunc      *free_func);
 
 
 /* Caches
index 6fa142b..0ff5a24 100644 (file)
@@ -40,7 +40,6 @@ struct _GHashTable
   GHashNode **nodes;
   GHashFunc hash_func;
   GCompareFunc key_compare_func;
-  GFreeFunc *free_func;
 };
 
 
@@ -49,10 +48,8 @@ static GHashNode**   g_hash_table_lookup_node (GHashTable    *hash_table,
                                                  gconstpointer  key);
 static GHashNode*      g_hash_node_new          (gpointer       key,
                                                  gpointer       value);
-static void            g_hash_node_destroy      (GHashNode     *hash_node,
-                                                 GFreeFunc     *free_func);
-static void            g_hash_nodes_destroy     (GHashNode     *hash_node,
-                                                 GFreeFunc     *free_func);
+static void            g_hash_node_destroy      (GHashNode     *hash_node);
+static void            g_hash_nodes_destroy     (GHashNode     *hash_node);
 
 
 static GMemChunk *node_mem_chunk = NULL;
@@ -73,7 +70,6 @@ g_hash_table_new (GHashFunc    hash_func,
   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);
-  hash_table->free_func = NULL;
   
   for (i = 0; i < hash_table->size; i++)
     hash_table->nodes[i] = NULL;
@@ -89,7 +85,7 @@ g_hash_table_destroy (GHashTable *hash_table)
   g_return_if_fail (hash_table != NULL);
   
   for (i = 0; i < hash_table->size; i++)
-    g_hash_nodes_destroy (hash_table->nodes[i], hash_table->free_func);
+    g_hash_nodes_destroy (hash_table->nodes[i]);
   
   g_free (hash_table->nodes);
   g_free (hash_table);
@@ -174,7 +170,7 @@ g_hash_table_remove (GHashTable          *hash_table,
     {
       dest = *node;
       (*node) = dest->next;
-      g_hash_node_destroy (dest, hash_table->free_func);
+      g_hash_node_destroy (dest);
       hash_table->nnodes--;
     }
   
@@ -253,13 +249,13 @@ g_hash_table_foreach_remove (GHashTable   *hash_table,
              if (prev)
                {
                  prev->next = node->next;
-                 g_hash_node_destroy (node, hash_table->free_func);
+                 g_hash_node_destroy (node);
                  node = prev;
                }
              else
                {
                  hash_table->nodes[i] = node->next;
-                 g_hash_node_destroy (node, hash_table->free_func);
+                 g_hash_node_destroy (node);
                  goto restart;
                }
            }
@@ -297,12 +293,6 @@ g_hash_table_size (GHashTable *hash_table)
   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
 g_hash_table_resize (GHashTable *hash_table)
 {
@@ -371,15 +361,14 @@ g_hash_node_new (gpointer key,
 }
 
 static void
-g_hash_node_destroy (GHashNode *hash_node, GFreeFunc *free_func)
+g_hash_node_destroy (GHashNode *hash_node)
 {
-  if (free_func) (*free_func)(hash_node->key);
   hash_node->next = node_free_list;
   node_free_list = hash_node;
 }
 
 static void
-g_hash_nodes_destroy (GHashNode *hash_node, GFreeFunc *free_func)
+g_hash_nodes_destroy (GHashNode *hash_node)
 {
   GHashNode *node;
   
@@ -389,10 +378,7 @@ g_hash_nodes_destroy (GHashNode *hash_node, GFreeFunc *free_func)
   node = hash_node;
   
   while (node->next)
-    {
-      if (free_func) (*free_func)(node->key);
-      node = node->next;
-    }
+    node = node->next;
   
   node->next = node_free_list;
   node_free_list = hash_node;
index a2f4327..39c73f8 100644 (file)
@@ -960,8 +960,6 @@ gint            g_hash_table_foreach_remove (GHashTable     *hash_table,
                                         GHRFunc         func,
                                         gpointer        user_data);
 gint       g_hash_table_size           (GHashTable     *hash_table);
-void       g_hash_table_set_key_freefunc (GHashTable   *hash_table,
-                                        GFreeFunc      *free_func);
 
 
 /* Caches