[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