[Gnucash-changes] Add more debugging to gnc-hooks.
Derek Atkins
warlord at cvs.gnucash.org
Sun Jun 12 14:48:17 EDT 2005
Log Message:
-----------
Add more debugging to gnc-hooks.
* src/engine/gnc-hooks.c:
Use ENTER/LEAVE macros instead of commented printfs
Tags:
----
gnucash-gnome2-dev
Modified Files:
--------------
gnucash:
ChangeLog
gnucash/src/engine:
gnc-hooks.c
Revision Data
-------------
Index: ChangeLog
===================================================================
RCS file: /home/cvs/cvsroot/gnucash/ChangeLog,v
retrieving revision 1.1487.2.226
retrieving revision 1.1487.2.227
diff -LChangeLog -LChangeLog -u -r1.1487.2.226 -r1.1487.2.227
--- ChangeLog
+++ ChangeLog
@@ -5,6 +5,9 @@
* src/engine/Makefile.am:
Handle new (private) header file, gnc-hooks-scm.h
+ * src/engine/gnc-hooks.c:
+ Use ENTER/LEAVE macros instead of commented printfs
+
2005-06-11 David Hampton <hampton at employees.org>
* src/gnome-utils/gnc-plugin-manager.[ch]: Take ownership of
Index: gnc-hooks.c
===================================================================
RCS file: /home/cvs/cvsroot/gnucash/src/engine/Attic/gnc-hooks.c,v
retrieving revision 1.1.2.4
retrieving revision 1.1.2.5
diff -Lsrc/engine/gnc-hooks.c -Lsrc/engine/gnc-hooks.c -u -r1.1.2.4 -r1.1.2.5
--- src/engine/gnc-hooks.c
+++ src/engine/gnc-hooks.c
@@ -29,6 +29,9 @@
#include <g-wrap-wct.h>
#include "gnc-hooks.h"
#include "gnc-hooks-scm.h"
+#include "gnc-trace.h"
+
+static short module = MOD_ENGINE;
static GHashTable* gnc_hooks_list = NULL;
static gboolean gnc_hooks_initialized = FALSE;
@@ -48,7 +51,7 @@
{
GncHook *hook_list;
- //printf("Enter %s: name %s\n", __FUNCTION__, name);
+ ENTER("name %s", name)
if (gnc_hooks_list == NULL) {
gnc_hooks_list = g_hash_table_new(g_str_hash, g_str_equal);
@@ -59,7 +62,7 @@
hook_list = g_hash_table_lookup(gnc_hooks_list, name);
if (hook_list) {
- //printf("Leave %s: list %s(%p) already exists\n\n", __FUNCTION__, name, hook_list);
+ LEAVE("List %s(%p) already exists", name, hook_list);
return(name);
}
@@ -70,8 +73,8 @@
hook_list->scm_danglers = g_malloc(sizeof(GHookList));
g_hook_list_init(hook_list->scm_danglers, sizeof(GHook));
g_hash_table_insert(gnc_hooks_list, (gchar *)name, hook_list);
- //printf("Leave %s: created list %s(%p)\n", __FUNCTION__, name, hook_list);
+ LEAVE("created list %s(%p)", name, hook_list);
return name;
}
@@ -80,14 +83,14 @@
{
GncHook *hook;
- //printf("Enter %s: name %s\n", __FUNCTION__, name);
+ ENTER("name %s", name);
if (gnc_hooks_list == NULL) {
- //printf("Leave %s: no hook lists\n", __FUNCTION__);
+ LEAVE("no hook lists");
gnc_hooks_init();
}
hook = g_hash_table_lookup(gnc_hooks_list, name);
- //printf("Leave %s: hook list %p\n", __FUNCTION__, hook_list);
+ LEAVE("hook list %p", hook);
return(hook);
}
@@ -95,9 +98,15 @@
gnc_hook_get_description(const gchar *name)
{
GncHook *hook;
+ ENTER("name %s", name);
hook = gnc_hook_lookup(name);
- if (!hook) return "";
+ if (!hook) {
+ LEAVE("No hook found");
+ return "";
+ }
+
+ LEAVE("desc: %s", hook->desc);
return hook->desc;
}
@@ -107,7 +116,7 @@
GncHook *gnc_hook;
GHook *hook;
- //printf("Enter %s: list %s, function %p\n\n", __FUNCTION__, name, callback);
+ ENTER("list %s, function %p, cbarg %p", name, callback, cb_arg);
gnc_hook = gnc_hook_lookup(name);
g_return_if_fail(gnc_hook != NULL);
hook = g_hook_alloc(gnc_hook->c_danglers);
@@ -115,7 +124,7 @@
hook->data = cb_arg;
hook->destroy = NULL;
g_hook_append(gnc_hook->c_danglers, hook);
- //printf("Leave %s: \n", __FUNCTION__);
+ LEAVE("");
}
static gboolean
@@ -130,21 +139,21 @@
GncHook *gnc_hook;
GHook *hook;
- //printf("Enter %s: name %s, function %p\n\n", __FUNCTION__, name, callback);
+ ENTER("name %s, function %p", name, callback);
gnc_hook = gnc_hook_lookup(name);
if (gnc_hook == NULL) {
- //printf("Leave %s: Unknown hook list %s\n", __FUNCTION__, name);
+ LEAVE("Unknown hook list %s", name);
return;
}
hook = g_hook_find(gnc_hook->c_danglers, TRUE, hook_remove_runner, callback);
if (hook == NULL) {
- //printf("Leave %s: Hook %p not found in %s\n", __FUNCTION__, callback, name);
+ LEAVE("Hook %p not found in %s", callback, name);
return;
}
g_hook_unref(gnc_hook->c_danglers, hook);
- //printf("Leave %s: Removed %p from %s\n", __FUNCTION__ , hook, name);
+ LEAVE("Removed %p from %s", hook, name);
}
static void
@@ -160,12 +169,16 @@
{
GncScmDangler *scm = hook->data;
+ ENTER("hook %p, data %p, cbarg %p", hook, data, hook->data);
+
// XXX: FIXME: We really should make sure this is a session!!! */
scm_call_1 (scm->proc,
(data ?
gw_wcp_assimilate_ptr (data,
scm_c_eval_string("<gnc:Session*>")) :
SCM_BOOL_F));
+
+ LEAVE("");
}
void
@@ -175,7 +188,7 @@
GHook *hook;
GncScmDangler *scm;
- //printf("Enter %s: list %s, function %p\n\n", __FUNCTION__, name, callback);
+ ENTER("list %s, proc ???", name);
gnc_hook = gnc_hook_lookup(name);
g_return_if_fail(gnc_hook != NULL);
scm = g_new0(GncScmDangler, 1);
@@ -186,7 +199,7 @@
hook->data = scm;
hook->destroy = delete_scm_hook;
g_hook_append(gnc_hook->scm_danglers, hook);
- //printf("Leave %s: \n", __FUNCTION__);
+ LEAVE("");
}
static gboolean
@@ -207,31 +220,32 @@
GHook *hook;
GncScmDangler scm;
- scm.proc = proc;
+ ENTER("name %s, proc ???", name);
- //printf("Enter %s: name %s, function %p\n\n", __FUNCTION__, name, &scm);
+ scm.proc = proc;
gnc_hook = gnc_hook_lookup(name);
if (gnc_hook == NULL) {
- //printf("Leave %s: Unknown hook list %s\n", __FUNCTION__, name);
+ LEAVE("Unknown hook list %s", name);
return;
}
hook = g_hook_find(gnc_hook->scm_danglers, TRUE, hook_remove_scm_runner, &scm);
if (hook == NULL) {
- //printf("Leave %s: Hook %p not found in %s\n", __FUNCTION__, callback, name);
+ LEAVE("Hook dangler not found");
return;
}
g_hook_unref(gnc_hook->scm_danglers, hook);
- //printf("Leave %s: Removed %p from %s\n", __FUNCTION__ , hook, name);
+ LEAVE("Removed dangler from %s", name);
}
static void
call_c_hook (GHook *hook, gpointer data)
{
- //printf("Enter %s: hook %p (func %p), data %p\n", __FUNCTION__, hook, hook->func, data);
+ ENTER("hook %p (func %p), data %p, cbarg %p", hook, hook->func, data,
+ hook->data);
((GFunc)hook->func)(data, hook->data);
- //printf("Leave %s: \n", __FUNCTION__);
+ LEAVE("");
}
void
@@ -239,22 +253,26 @@
{
GncHook *hook;
- //printf("Enter %s: list %s, data %p\n", __FUNCTION__, name, data);
+ ENTER("list %s, data %p", name, data);
hook = gnc_hook_lookup(name);
if (!hook) {
- //printf("Leave %s: No such hook list\n", __FUNCTION__);
+ LEAVE("No such hook list");
return;
}
g_hook_list_marshal(hook->c_danglers, TRUE, call_c_hook, data);
g_hook_list_marshal(hook->scm_danglers, TRUE, call_scm_hook, data);
- //printf("Leave %s: \n", __FUNCTION__);
+ LEAVE("");
}
void
gnc_hooks_init(void)
{
- if (gnc_hooks_initialized)
+ ENTER("");
+
+ if (gnc_hooks_initialized) {
+ LEAVE("Hooks already initialized");
return;
+ }
gnc_hooks_initialized = TRUE;
@@ -279,4 +297,6 @@
"Run after book open. Hook args: <gnc:Session*>.");
gnc_hook_create(HOOK_BOOK_CLOSED,
"Run before file close. Hook args: <gnc:Session*>");
+
+ LEAVE("");
}
More information about the gnucash-changes
mailing list