Fix memory leak
authorJohn Darrington <john@darrington.wattle.id.au>
Sun, 27 Jan 2013 18:36:18 +0000 (19:36 +0100)
committerJohn Darrington <john@darrington.wattle.id.au>
Sat, 16 Feb 2013 14:03:55 +0000 (15:03 +0100)
src/data/gnumeric-reader.c
src/data/gnumeric-reader.h
src/ui/gui/psppire-spreadsheet-model.c

index 6b78dec8e32a9df8fc7675dabc07af8bfb399f31..d750baca84d3cf5a88948ac88119fee2d0e8c9f6 100644 (file)
@@ -145,7 +145,7 @@ gnumeric_get_sheet_name (struct spreadsheet *s, int n)
 static void process_node (struct gnumeric_reader *r);
 
 
-const char *
+char *
 gnumeric_get_sheet_range (struct spreadsheet *s, int n)
 {
   int ret;
@@ -268,6 +268,7 @@ process_node (struct gnumeric_reader *r)
        }
       else if (XML_READER_TYPE_TEXT == r->node_type)
        {
+#if MODEL_SHOULD_WORK
                  if ( r->target_sheet != NULL)
            {
              xmlChar *value = xmlTextReaderValue (r->xtr);
@@ -279,6 +280,9 @@ process_node (struct gnumeric_reader *r)
            {
              r->state = STATE_SHEET_FOUND;
            }
+#else
+      r->state = STATE_SHEET_FOUND;
+#endif
        }
       break;
     case STATE_SHEET_FOUND:
index 7e16341b3cbed8cad4f20da1a0a78ba7b2006148..8c7518f808037b92b69f64d7eca0934546bb9764 100644 (file)
@@ -28,7 +28,7 @@ struct spreadsheet *gnumeric_probe (const char *filename);
 
 const char * gnumeric_get_sheet_name (struct spreadsheet *s, int n);
 
-const char * gnumeric_get_sheet_range (struct spreadsheet *s, int n);
+char * gnumeric_get_sheet_range (struct spreadsheet *s, int n);
 
 void gnumeric_destroy (struct spreadsheet *);
 
index 83c6a5b286b9cb4f24a5055a5a929f90127e2065..f66ce1da280031a14a0fc5e365adf7353c35336c 100644 (file)
@@ -260,10 +260,11 @@ tree_model_get_value (GtkTreeModel * model, GtkTreeIter * iter,
       break;
     case COL_SHEET_RANGE:
       {
-        const char *x =
+        char *x =
           gnumeric_get_sheet_range (spreadsheetModel->spreadsheet,
                                     (gint) iter->user_data);
         g_value_set_string (value, x);
+       free (x);
       }
       break;
     default: