r15806 - gnucash/branches/gobject-engine-dev-warlord - Convert SX-book (SchedXactions) to GObject initialization.

Derek Atkins warlord at cvs.gnucash.org
Wed Apr 4 20:23:44 EDT 2007


Author: warlord
Date: 2007-04-04 20:23:42 -0400 (Wed, 04 Apr 2007)
New Revision: 15806
Trac: http://svn.gnucash.org/trac/changeset/15806

Modified:
   gnucash/branches/gobject-engine-dev-warlord/
   gnucash/branches/gobject-engine-dev-warlord/src/engine/SX-book.c
   gnucash/branches/gobject-engine-dev-warlord/src/engine/SX-book.h
Log:
Convert SX-book (SchedXactions) to GObject initialization.
Note that this object is never freed here, so it's a potential memory leak.



Property changes on: gnucash/branches/gobject-engine-dev-warlord
___________________________________________________________________
Name: svk:merge
   - 3889ce50-311e-0410-a464-f059747ec5d1:/local/gnucash/branches/swig-redo:802
3889ce50-311e-0410-a464-f059747ec5d1:/local/gnucash/trunk:1037
d2ab10a8-8a95-4986-baff-8d511d9f15b2:/local/gnucash/branches/gobject-engine-dev-warlord:14369
d2ab10a8-8a95-4986-baff-8d511d9f15b2:/local/gnucash/branches/gobject-engine-dev-warlord1:14386
d2ab10a8-8a95-4986-baff-8d511d9f15b2:/local/gnucash/trunk:14282
d2ab10a8-8a95-4986-baff-8d511d9f15b2:/local/gnucash/trunk2:13366
   + 3889ce50-311e-0410-a464-f059747ec5d1:/local/gnucash/branches/swig-redo:802
3889ce50-311e-0410-a464-f059747ec5d1:/local/gnucash/trunk:1037
d2ab10a8-8a95-4986-baff-8d511d9f15b2:/local/gnucash/branches/gobject-engine-dev-warlord:14369
d2ab10a8-8a95-4986-baff-8d511d9f15b2:/local/gnucash/branches/gobject-engine-dev-warlord1:14387
d2ab10a8-8a95-4986-baff-8d511d9f15b2:/local/gnucash/trunk:14282
d2ab10a8-8a95-4986-baff-8d511d9f15b2:/local/gnucash/trunk2:13366

Modified: gnucash/branches/gobject-engine-dev-warlord/src/engine/SX-book.c
===================================================================
--- gnucash/branches/gobject-engine-dev-warlord/src/engine/SX-book.c	2007-04-05 00:23:32 UTC (rev 15805)
+++ gnucash/branches/gobject-engine-dev-warlord/src/engine/SX-book.c	2007-04-05 00:23:42 UTC (rev 15806)
@@ -214,7 +214,20 @@
 /* ====================================================================== */
 /* SX-trans stuff */
 
+/* GObject initialization */
+QOF_GOBJECT_IMPL(gnc_schedxactions, SchedXactions, QOF_TYPE_INSTANCE);
+
 static void
+gnc_schedxactions_init(SchedXactions* fs)
+{
+}
+
+static void
+gnc_schedxactions_finalize_real(GObject* fsp)
+{
+}
+
+static void
 mark_sx_clean(gpointer data, gpointer user_data)
 {
   SchedXaction *sx = (SchedXaction *) data;
@@ -228,11 +241,14 @@
      SchedXactions *sxes;
 
      col = qof_book_get_collection(book, GNC_ID_SCHEDXACTION);
-     sxes = g_new (SchedXactions, 1);
-     qof_instance_init(&sxes->inst, GNC_ID_SXES, book);
+     sxes = g_object_new (GNC_TYPE_SCHEDXACTIONS, NULL);
+     g_assert(sxes);
+     qof_instance_init_data(&sxes->inst, GNC_ID_SXES, book);
      sxes->sx_list = NULL;
      sxes->sx_notsaved = TRUE;
      qof_collection_set_data(col, sxes);
+
+     /* XXX: FIXME:  MEMORY LEAK.  This object is never freed. */
 }
 
 static void

Modified: gnucash/branches/gobject-engine-dev-warlord/src/engine/SX-book.h
===================================================================
--- gnucash/branches/gobject-engine-dev-warlord/src/engine/SX-book.h	2007-04-05 00:23:32 UTC (rev 15805)
+++ gnucash/branches/gobject-engine-dev-warlord/src/engine/SX-book.h	2007-04-05 00:23:42 UTC (rev 15806)
@@ -39,21 +39,41 @@
 #ifndef GNC_SX_BOOK_H
 #define GNC_SX_BOOK_H
 
+typedef struct xaccSchedXactionsDef SchedXactions;
+typedef struct _SchedXactionsClass SchedXactionsClass;
+
 #include <glib.h>
 #include "SchedXaction.h"
 #include "qof.h"
 
-typedef struct xaccSchedXactionsDef SchedXactions;
-
 struct xaccSchedXactionsDef {
   QofInstance inst;
   GList* sx_list;
   gboolean sx_notsaved;
 };
 
-#define GNC_IS_SXES(obj)  (QOF_CHECK_TYPE((obj), GNC_ID_SXES))
-#define GNC_SXES(obj)     (QOF_CHECK_CAST((obj), GNC_ID_SXES, SchedXactions))
+struct _SchedXactionsClass
+{
+  QofInstanceClass parent_class;
+};
 
+/* --- type macros --- */
+#define GNC_TYPE_SCHEDXACTIONS            (gnc_schedxactions_get_type ())
+#define GNC_SCHEDXACTIONS(o)              \
+     (G_TYPE_CHECK_INSTANCE_CAST ((o), GNC_TYPE_SCHEDXACTIONS, SchedXactions))
+#define GNC_SCHEDXACTIONS_CLASS(k)        \
+     (G_TYPE_CHECK_CLASS_CAST((k), GNC_TYPE_SCHEDXACTIONS, SchedXactionsClass))
+#define GNC_IS_SCHEDXACTIONS(o)           \
+     (G_TYPE_CHECK_INSTANCE_TYPE ((o), GNC_TYPE_SCHEDXACTIONS))
+#define GNC_IS_SCHEDXACTIONS_CLASS(k)     \
+     (G_TYPE_CHECK_CLASS_TYPE ((k), GNC_TYPE_SCHEDXACTIONS))
+#define GNC_SCHEDXACTIONS_GET_CLASS(o)    \
+     (G_TYPE_INSTANCE_GET_CLASS ((o), GNC_TYPE_SCHEDXACTIONS, SchedXactionsClass))
+GType gnc_schedxactions_get_type(void);
+
+#define GNC_IS_SXES(obj)  GNC_IS_SCHEDXACTIONS(obj)
+#define GNC_SXES(obj)     GNC_SCHEDXACTIONS(obj)
+
 SchedXactions* gnc_book_get_schedxactions(QofBook* book);
 
 void gnc_sxes_add_sx(SchedXactions* sxes, SchedXaction* sx);



More information about the gnucash-changes mailing list