From ccec2fb8a4357a5984dc9c8cba5e10b8e9ec400d Mon Sep 17 00:00:00 2001 From: Carsten Haitzler Date: Fri, 23 Oct 2009 00:01:15 +0000 Subject: [PATCH] fix xml init - called multilpe times, has no count for init + shutdown. SVN revision: 43222 --- legacy/efreet/src/lib/efreet_xml.c | 20 +++++++++++++------- 1 file changed, 13 insertions(+), 7 deletions(-) diff --git a/legacy/efreet/src/lib/efreet_xml.c b/legacy/efreet/src/lib/efreet_xml.c index 66a58f6..26c6946 100644 --- a/legacy/efreet/src/lib/efreet_xml.c +++ b/legacy/efreet/src/lib/efreet_xml.c @@ -44,6 +44,7 @@ static int error = 0; #endif #define EFREET_MODULE_LOG_DOM _efreet_xml_log_dom +static int _efreet_xml_init_count = 0; static int _efreet_xml_log_dom = -1; /** @@ -54,13 +55,16 @@ static int _efreet_xml_log_dom = -1; int efreet_xml_init(void) { - _efreet_xml_log_dom = eina_log_domain_register("Efreet_xml", EFREET_DEFAULT_LOG_COLOR); - if (_efreet_xml_log_dom < 0) - { + _efreet_xml_init_count++; + if (_efreet_xml_init_count > 1) return _efreet_xml_init_count; + _efreet_xml_log_dom = eina_log_domain_register("Efreet_xml", EFREET_DEFAULT_LOG_COLOR); + if (_efreet_xml_log_dom < 0) + { + _efreet_xml_init_count--; ERROR("Efreet: Could not create a log domain for Efreet_xml."); - return 0; - } - return 1; + return _efreet_xml_init_count; + } + return _efreet_xml_init_count; } /** @@ -71,7 +75,9 @@ efreet_xml_init(void) void efreet_xml_shutdown(void) { - eina_log_domain_unregister(_efreet_xml_log_dom); + _efreet_xml_init_count--; + if (_efreet_xml_init_count > 0) return; + eina_log_domain_unregister(_efreet_xml_log_dom); } /** -- 2.7.4