Fixed bug reporting the significance of paired value t-test.
[pspp-builds.git] / lib / gtksheet / gtksheet.c
index d2db58009a7432dbcfe70f03467489949e285b5a..942b0233117b4641a61b9dadccbec4fed9f51866 100644 (file)
@@ -2440,7 +2440,10 @@ gtk_sheet_dispose  (GObject *object)
   if (sheet->column_geometry) g_object_unref (sheet->column_geometry);
 
   g_object_unref (sheet->entry_container);
+  sheet->entry_container = NULL;
+
   g_object_unref (sheet->button);
+  sheet->button = NULL;
 
   /* unref adjustments */
   if (sheet->hadjustment)
@@ -2722,7 +2725,8 @@ gtk_sheet_unrealize (GtkWidget * widget)
   sheet->bg_gc = NULL;
 
   gtk_widget_unparent (sheet->entry_widget);
-  gtk_widget_unparent (sheet->button);
+  if (sheet->button != NULL)
+    gtk_widget_unparent (sheet->button);
 
   if (GTK_WIDGET_CLASS (parent_class)->unrealize)
     (* GTK_WIDGET_CLASS (parent_class)->unrealize) (widget);
@@ -7849,10 +7853,21 @@ gtk_sheet_button_free (GtkSheetButton *button)
 }
 
 
+static void
+append_cell_text (GString *string, const GtkSheet *sheet, gint r, gint c)
+{
+  gchar *celltext = gtk_sheet_cell_get_text (sheet, r, c);
+
+  if ( NULL == celltext)
+    return;
+
+  g_string_append (string, celltext);
+  g_free (celltext);
+}
+
 static GString *
 range_to_text (const GtkSheet *sheet)
 {
-  gchar *celltext = NULL;
   gint r, c;
   GString *string;
 
@@ -7865,16 +7880,12 @@ range_to_text (const GtkSheet *sheet)
     {
       for (c = sheet->range.col0; c < sheet->range.coli; ++c)
        {
-         celltext = gtk_sheet_cell_get_text (sheet, r, c);
-         g_string_append (string, celltext);
+         append_cell_text (string, sheet, r, c);
          g_string_append (string, "\t");
-         g_free (celltext);
        }
-      celltext = gtk_sheet_cell_get_text (sheet, r, c);
-      g_string_append (string, celltext);
+      append_cell_text (string, sheet, r, c);
       if ( r < sheet->range.rowi)
        g_string_append (string, "\n");
-      g_free (celltext);
     }
 
   return string;
@@ -7883,7 +7894,6 @@ range_to_text (const GtkSheet *sheet)
 static GString *
 range_to_html (const GtkSheet *sheet)
 {
-  gchar *celltext = NULL;
   gint r, c;
   GString *string;
 
@@ -7901,10 +7911,8 @@ range_to_html (const GtkSheet *sheet)
       for (c = sheet->range.col0; c <= sheet->range.coli; ++c)
        {
          g_string_append (string, "<td>");
-         celltext = gtk_sheet_cell_get_text (sheet, r, c);
-         g_string_append (string, celltext);
+         append_cell_text (string, sheet, r, c);
          g_string_append (string, "</td>\n");
-         g_free (celltext);
        }
       g_string_append (string, "</tr>\n");
     }