From: Enlightenment S. <no-...@en...> - 2009-09-04 02:04:03
|
Log: loggify stringshare, with extensive debug. note that one can turn per module debug, for example: EINA_LOG_LEVEL=4 EINA_LOG_LEVELS=eina_stringshare:0 ./bla will enable level 4 (debug) for all modules except eina_stringshare that is forced to 0 (just critical messages). Author: barbieri Date: 2009-09-03 19:03:46 -0700 (Thu, 03 Sep 2009) New Revision: 42224 Modified: trunk/eina/src/lib/eina_stringshare.c Modified: trunk/eina/src/lib/eina_stringshare.c =================================================================== --- trunk/eina/src/lib/eina_stringshare.c 2009-09-04 01:54:37 UTC (rev 42223) +++ trunk/eina/src/lib/eina_stringshare.c 2009-09-04 02:03:46 UTC (rev 42224) @@ -957,6 +957,7 @@ Eina_Stringshare_Node *el; int hash_num, hash; + DBG("str=%p (%.*s), slen=%u", str, slen, str ? str : "", slen); if (!str) return NULL; _eina_stringshare_population_add(slen); @@ -964,7 +965,7 @@ if (slen == 0) return ""; else if (slen == 1) - return _eina_stringshare_single + ((*str) << 1); + return (const char *)_eina_stringshare_single + ((*str) << 1); else if (slen < 4) return _eina_stringshare_small_add(str, slen); @@ -1064,6 +1065,7 @@ Eina_Stringshare_Node *node; int slen; + DBG("str=%p (%s)", str, str ? str : ""); if (!str) return NULL; /* special cases */ @@ -1086,6 +1088,7 @@ node = _eina_stringshare_node_from_str(str); node->references++; + DBG("str=%p (%s) refs=%u", str, str, node->references); _eina_stringshare_population_add(node->length); @@ -1114,6 +1117,7 @@ Eina_Stringshare_Node *node; int hash_num, slen, hash; + DBG("str=%p (%s)", str, str ? str : ""); if (!str) return; /* special cases */ @@ -1137,9 +1141,11 @@ if (node->references > 1) { node->references--; + DBG("str=%p (%s) refs=%u", str, str, node->references); return; } + DBG("str=%p (%s) refs=0, delete.", str, str); node->references = 0; slen = node->length; |