X-Git-Url: http://git.maemo.org/git/?p=modest;a=blobdiff_plain;f=src%2Fmodest-singletons.c;h=61d0b0819269bc3f88bda0414aa99df67e98cfcf;hp=541f4bee11741f2af2519a6af384bbc16dd243b7;hb=150b4cb3020b18a35b08703f5caa6386025805c7;hpb=8f5689576717728885ab7d8477dc01ad5cfb5541 diff --git a/src/modest-singletons.c b/src/modest-singletons.c index 541f4be..61d0b08 100644 --- a/src/modest-singletons.c +++ b/src/modest-singletons.c @@ -28,6 +28,7 @@ */ #include "modest-singletons.h" +#include "modest-runtime.h" /* 'private'/'protected' functions */ static void modest_singletons_class_init (ModestSingletonsClass *klass); @@ -148,54 +149,62 @@ static void check_object_is_dead (GObject *obj, gchar *name) { if (G_IS_OBJECT(obj)) - g_warning ("BUG: %s is still alive\n", name); + g_warning ("BUG: %s still has %d ref(s)\n", name, obj->ref_count); } static void modest_singletons_finalize (GObject *obj) { ModestSingletonsPrivate *priv; + gboolean debug = modest_runtime_get_debug_flags() & MODEST_RUNTIME_DEBUG_DEBUG_OBJECTS; + priv = MODEST_SINGLETONS_GET_PRIVATE(obj); if (priv->account_store) { g_object_unref (G_OBJECT(priv->account_store)); - check_object_is_dead ((GObject*)priv->account_store, - "priv->account_store"); + if (debug) + check_object_is_dead ((GObject*)priv->account_store, + "priv->account_store"); priv->account_store = NULL; } if (priv->account_mgr) { g_object_unref (G_OBJECT(priv->account_mgr)); - check_object_is_dead ((GObject*)priv->account_mgr, - "priv->account_mgr"); + if (debug) + check_object_is_dead ((GObject*)priv->account_mgr, + "priv->account_mgr"); priv->account_mgr = NULL; } if (priv->conf) { g_object_unref (G_OBJECT(priv->conf)); - check_object_is_dead ((GObject*)priv->conf, - "priv->conf"); + if (debug) + check_object_is_dead ((GObject*)priv->conf, + "priv->conf"); priv->conf = NULL; } if (priv->cache_mgr) { g_object_unref (G_OBJECT(priv->cache_mgr)); - check_object_is_dead ((GObject*)priv->cache_mgr, - "priv->cache_mgr"); + if (debug) + check_object_is_dead ((GObject*)priv->cache_mgr, + "priv->cache_mgr"); priv->cache_mgr = NULL; } if (priv->device) { g_object_unref (G_OBJECT(priv->device)); - check_object_is_dead ((GObject*)priv->cache_mgr, - "priv->device"); + if (debug) + check_object_is_dead ((GObject*)priv->cache_mgr, + "priv->device"); priv->device = NULL; } if (priv->platform_fact) { g_object_unref (G_OBJECT(priv->platform_fact)); - check_object_is_dead ((GObject*)priv->cache_mgr, - "priv->platform_fact"); + if (debug) + check_object_is_dead ((GObject*)priv->cache_mgr, + "priv->platform_fact"); priv->platform_fact = NULL; }