[Gnucash-changes] Utilize the new object tracking functions in these gnucash base class

David Hampton hampton at cvs.gnucash.org
Fri Jun 10 18:13:50 EDT 2005


Log Message:
-----------
Utilize the new object tracking functions in these gnucash base class
objects.

Tags:
----
gnucash-gnome2-dev

Modified Files:
--------------
    gnucash/src/gnome-utils:
        gnc-plugin-page.c
        gnc-plugin.c
        gnc-tree-view.c
        gnc-tree-view.h

Revision Data
-------------
Index: gnc-plugin-page.c
===================================================================
RCS file: /home/cvs/cvsroot/gnucash/src/gnome-utils/Attic/gnc-plugin-page.c,v
retrieving revision 1.1.2.1
retrieving revision 1.1.2.2
diff -Lsrc/gnome-utils/gnc-plugin-page.c -Lsrc/gnome-utils/gnc-plugin-page.c -u -r1.1.2.1 -r1.1.2.2
--- src/gnome-utils/gnc-plugin-page.c
+++ src/gnome-utils/gnc-plugin-page.c
@@ -27,11 +27,13 @@
 
 #include <gtk/gtk.h>
 #include "gnc-plugin-page.h"
+#include "gnc-gobject-utils.h"
 
 static gpointer         parent_class = NULL;
 
 static void gnc_plugin_page_class_init (GncPluginPageClass *klass);
-static void gnc_plugin_page_init       (GncPluginPage *plugin_page);
+static void gnc_plugin_page_init       (GncPluginPage *plugin_page,
+					GncPluginPageClass *klass);
 static void gnc_plugin_page_finalize   (GObject *object);
 
 enum {
@@ -239,7 +241,7 @@
 }
 
 static void
-gnc_plugin_page_init (GncPluginPage *plugin_page)
+gnc_plugin_page_init (GncPluginPage *plugin_page, GncPluginPageClass *klass)
 {
 	GncPluginPagePrivate *priv;
 
@@ -251,6 +253,9 @@
 
 	plugin_page->window      = NULL;
 	plugin_page->summarybar  = NULL;
+
+	gnc_gobject_tracking_remember(G_OBJECT(plugin_page),
+				      G_OBJECT_CLASS(klass));
 }
 
 static void
@@ -287,6 +292,7 @@
   }
   page->window = NULL; // Don't need to free it.
 
+  gnc_gobject_tracking_forget(object);
   G_OBJECT_CLASS (parent_class)->finalize (object);
 }
 
Index: gnc-tree-view.c
===================================================================
RCS file: /home/cvs/cvsroot/gnucash/src/gnome-utils/Attic/gnc-tree-view.c,v
retrieving revision 1.1.2.1
retrieving revision 1.1.2.2
diff -Lsrc/gnome-utils/gnc-tree-view.c -Lsrc/gnome-utils/gnc-tree-view.c -u -r1.1.2.1 -r1.1.2.2
--- src/gnome-utils/gnc-tree-view.c
+++ src/gnome-utils/gnc-tree-view.c
@@ -41,6 +41,7 @@
 #include "gnc-engine-util.h"
 #include "gnc-gconf-utils.h"
 #include "gnc-gnome-utils.h"
+#include "gnc-gobject-utils.h"
 
 /* The column id refers to a specific column in the tree model.  It is
  * also attached to the side of the tree column to allow lookup of a
@@ -87,11 +88,10 @@
 
 /* This static indicates the debugging module that this .o belongs to.  */
 static short module = MOD_GUI;
-static GList *active_views = NULL;
 
 /** Declarations *********************************************************/
 static void gnc_tree_view_class_init (GncTreeViewClass *klass);
-static void gnc_tree_view_init (GncTreeView *view);
+static void gnc_tree_view_init (GncTreeView *view, GncTreeViewClass *klass);
 static void gnc_tree_view_finalize (GObject *object);
 static void gnc_tree_view_destroy (GtkObject *object);
 static void gnc_tree_view_set_property (GObject         *object,
@@ -169,28 +169,13 @@
 		};
 		
 		gnc_tree_view_type = g_type_register_static (GTK_TYPE_TREE_VIEW,
-							     "GncTreeView",
+							     GNC_TREE_VIEW_NAME,
 							     &our_info, 0);
 	}
 
 	return gnc_tree_view_type;
 }
 
-#if DEBUG_REFERENCE_COUNTING
-static void
-dump_view (GncTreeView *view, gpointer dummy)
-{
-    g_warning("GncTreeView %p still exists.", view);
-}
-
-static gint
-gnc_tree_view_report_references (void)
-{
-  g_list_foreach(active_views, (GFunc)dump_view, NULL);
-  return 0;
-}
-#endif
-
 /** Initialize the class for the new base gnucash tree view.  This
  *  will set up any function pointers that override functions in the
  *  parent class, and also installs the proprieties that are unique to
@@ -234,12 +219,6 @@
 
 	/* GtkObject signals */
 	gtkobject_class->destroy = gnc_tree_view_destroy;
-
-#if DEBUG_REFERENCE_COUNTING
-	gtk_quit_add (0,
-		      (GtkFunction)gnc_tree_view_report_references,
-		      NULL);
-#endif
 }
 
 /** Initialize a new instance of a base gnucash tree view.  This
@@ -252,12 +231,13 @@
  *  @internal
  */
 static void
-gnc_tree_view_init (GncTreeView *view)
+gnc_tree_view_init (GncTreeView *view, GncTreeViewClass *klass)
 {
   GtkTreeViewColumn *column;
   GtkWidget *icon;
   GtkRequisition requisition;
 
+  gnc_gobject_tracking_remember(G_OBJECT(view), G_OBJECT_CLASS(klass));
 
   view->priv = g_new0 (GncTreeViewPrivate, 1);
 
@@ -270,8 +250,6 @@
   view->priv->sort_column_changed_cb_id = 0;
   view->priv->size_allocate_cb_id = 0;
 
-  active_views = g_list_append (active_views, view);
-
   /* Ask gtk to help the user keep track of rows. */
   g_object_set(view, "rules-hint", TRUE, NULL);
 
@@ -327,9 +305,9 @@
   g_return_if_fail (object != NULL);
   g_return_if_fail (GNC_IS_TREE_VIEW (object));
 
-  view = GNC_TREE_VIEW (object);
-  active_views = g_list_remove (active_views, view);
+  gnc_gobject_tracking_forget(object);
 
+  view = GNC_TREE_VIEW (object);
   g_free (view->priv);
 
   if (G_OBJECT_CLASS (parent_class)->finalize)
Index: gnc-tree-view.h
===================================================================
RCS file: /home/cvs/cvsroot/gnucash/src/gnome-utils/Attic/gnc-tree-view.h,v
retrieving revision 1.1.2.1
retrieving revision 1.1.2.2
diff -Lsrc/gnome-utils/gnc-tree-view.h -Lsrc/gnome-utils/gnc-tree-view.h -u -r1.1.2.1 -r1.1.2.2
--- src/gnome-utils/gnc-tree-view.h
+++ src/gnome-utils/gnc-tree-view.h
@@ -44,6 +44,8 @@
 #define GNC_IS_TREE_VIEW(obj)         (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GNC_TYPE_TREE_VIEW))
 #define GNC_IS_TREE_VIEW_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GNC_TYPE_TREE_VIEW))
 #define GNC_TREE_VIEW_GET_CLASS(obj)  (G_TYPE_INSTANCE_GET_CLASS ((obj), GNC_TYPE_TREE_VIEW, GncTreeViewClass))
+#define GNC_TREE_VIEW_NAME            "GncTreeView"
+
 
 /* typedefs & structures */
 typedef struct GncTreeViewPrivate GncTreeViewPrivate;
Index: gnc-plugin.c
===================================================================
RCS file: /home/cvs/cvsroot/gnucash/src/gnome-utils/Attic/gnc-plugin.c,v
retrieving revision 1.1.2.1
retrieving revision 1.1.2.2
diff -Lsrc/gnome-utils/gnc-plugin.c -Lsrc/gnome-utils/gnc-plugin.c -u -r1.1.2.1 -r1.1.2.2
--- src/gnome-utils/gnc-plugin.c
+++ src/gnome-utils/gnc-plugin.c
@@ -28,13 +28,15 @@
 #include "gnc-trace.h"
 #include "gnc-gconf-utils.h"
 #include "gnc-gnome-utils.h"
+#include "gnc-gobject-utils.h"
 #include "messages.h"
 
 static gpointer parent_class = NULL;
 static short module = MOD_GUI;
 
 static void gnc_plugin_class_init (GncPluginClass *klass);
-static void gnc_plugin_init       (GncPlugin *plugin_page);
+static void gnc_plugin_init       (GncPlugin *plugin_page,
+				   GncPluginClass *klass);
 static void gnc_plugin_finalize   (GObject *object);
 
 struct  GncPluginPrivate {
@@ -99,11 +101,13 @@
  *  @internal
  */
 static void
-gnc_plugin_init (GncPlugin *plugin_page)
+gnc_plugin_init (GncPlugin *plugin_page, GncPluginClass *klass)
 {
 	GncPluginPrivate *priv;
 
 	priv = plugin_page->priv = g_new0 (GncPluginPrivate, 1);
+	gnc_gobject_tracking_remember(G_OBJECT(plugin_page),\
+				      G_OBJECT_CLASS(klass));
 }
 
 
@@ -129,6 +133,7 @@
 
 	g_free (plugin->priv);
 
+	gnc_gobject_tracking_forget(object);
 	G_OBJECT_CLASS (parent_class)->finalize (object);
 }
 


More information about the gnucash-changes mailing list