Make sure finalizers are called properly
authorJohn Darrington <john@darrington.wattle.id.au>
Fri, 2 Jan 2009 07:47:34 +0000 (16:47 +0900)
committerJohn Darrington <john@darrington.wattle.id.au>
Fri, 2 Jan 2009 07:47:34 +0000 (16:47 +0900)
src/ui/gui/psppire-data-window.c
src/ui/gui/psppire-output-window.c
src/ui/gui/psppire-syntax-window.c

index 90e749d318af0bab38a7c7f42450e88fe16b2a10..0716804ed5f02a1f5d05536ce5c241cc53abe5ae 100644 (file)
@@ -100,19 +100,15 @@ psppire_data_window_get_type (void)
   return psppire_data_window_type;
 }
 
+static GObjectClass *parent_class ;
 
 static void
 psppire_data_window_finalize (GObject *object)
 {
   PsppireDataWindow *de = PSPPIRE_DATA_WINDOW (object);
 
-  GObjectClass *class = G_OBJECT_GET_CLASS (object);
-
-  GObjectClass *parent_class = g_type_class_peek_parent (class);
-
   g_object_unref (de->xml);
 
-
   if (G_OBJECT_CLASS (parent_class)->finalize)
     (*G_OBJECT_CLASS (parent_class)->finalize) (object);
 }
@@ -121,6 +117,7 @@ psppire_data_window_finalize (GObject *object)
 static void
 psppire_data_window_class_init (PsppireDataWindowClass *class)
 {
+  parent_class = g_type_class_peek_parent (class);
 }
 
 
index 5fc52e9bea1561177bc5ce33917f7e3a60584f42..abbcae719ef3cd82fd7d4d37437f21dcf961d4ec 100644 (file)
@@ -75,24 +75,23 @@ psppire_output_window_get_type (void)
   return psppire_output_window_type;
 }
 
+static GObjectClass *parent_class;
 
 static void
 psppire_output_window_finalize (GObject *object)
 {
   GObjectClass *class = G_OBJECT_GET_CLASS (object);
 
-  GObjectClass *parent_class = g_type_class_peek_parent (class);
-
 
   if (G_OBJECT_CLASS (parent_class)->finalize)
     (*G_OBJECT_CLASS (parent_class)->finalize) (object);
-
 }
 
 
 static void
 psppire_output_window_class_init (PsppireOutputWindowClass *class)
 {
+  parent_class = g_type_class_peek_parent (class);
 }
 
 
index 37bfd35cabe3b086ae6f43edc18763e7a4f0b1c0..3fe6d1a69f79d3f5a3c14364e7ddfe432f386a96 100644 (file)
@@ -70,13 +70,13 @@ psppire_syntax_window_get_type (void)
   return psppire_syntax_window_type;
 }
 
+static GObjectClass *parent_class ;
+
 static void
 psppire_syntax_window_finalize (GObject *object)
 {
   GObjectClass *class = G_OBJECT_GET_CLASS (object);
 
-  GObjectClass *parent_class = g_type_class_peek_parent (class);
-
   if (G_OBJECT_CLASS (parent_class)->finalize)
     (*G_OBJECT_CLASS (parent_class)->finalize) (object);
 }
@@ -93,6 +93,8 @@ psppire_syntax_window_base_init (PsppireSyntaxWindowClass *class)
 {
   GObjectClass *object_class = G_OBJECT_CLASS (class);
 
+  parent_class = g_type_class_peek_parent (class);
+
   object_class->finalize = psppire_syntax_window_finalize;
 }