r15852 - gnucash/trunk/src/app-utils - make hashtable destruction a bit more defensive

Josh Sled jsled at cvs.gnucash.org
Mon Apr 9 16:00:48 EDT 2007


Author: jsled
Date: 2007-04-09 16:00:46 -0400 (Mon, 09 Apr 2007)
New Revision: 15852
Trac: http://svn.gnucash.org/trac/changeset/15852

Modified:
   gnucash/trunk/src/app-utils/gnc-sx-instance-model.c
Log:
make hashtable destruction a bit more defensive

Modified: gnucash/trunk/src/app-utils/gnc-sx-instance-model.c
===================================================================
--- gnucash/trunk/src/app-utils/gnc-sx-instance-model.c	2007-04-09 00:51:51 UTC (rev 15851)
+++ gnucash/trunk/src/app-utils/gnc-sx-instance-model.c	2007-04-09 20:00:46 UTC (rev 15852)
@@ -500,7 +500,10 @@
 {
     gnc_sx_destroy_temporal_state(instance->temporal_state);
 
-    g_hash_table_destroy(instance->variable_bindings);
+    if (instance->variable_bindings != NULL)
+    {
+        g_hash_table_destroy(instance->variable_bindings);
+    }
     instance->variable_bindings = NULL;
      
     g_free(instance);
@@ -511,7 +514,10 @@
 {
     GList *instance_iter;
 
-    g_hash_table_destroy(instances->variable_names);
+    if (instances->variable_names != NULL)
+    {
+        g_hash_table_destroy(instances->variable_names);
+    }
     instances->variable_names = NULL;
 
     instances->sx = NULL;
@@ -798,7 +804,10 @@
         added_var_names = added_cb_data.list;
         g_debug("%d added variables", g_list_length(added_var_names));
 
-        g_hash_table_destroy(existing->variable_names);
+        if (existing->variable_names != NULL)
+        {
+            g_hash_table_destroy(existing->variable_names);
+        }
         existing->variable_names = new_instances->variable_names;
         new_instances->variable_names = NULL;
 
@@ -944,7 +953,11 @@
                             gnc_exp_parser_error_string());
             *creation_errors = g_list_append(*creation_errors, err);
         }
-        g_hash_table_destroy(parser_vars);
+
+        if (parser_vars != NULL)
+        {
+            g_hash_table_destroy(parser_vars);
+        }
     }
 }
 



More information about the gnucash-changes mailing list