summaryrefslogtreecommitdiff
path: root/legacy/evas/src/lib/main.c
diff options
context:
space:
mode:
authorTom Hacohen <tom@stosb.com>2012-06-10 08:43:49 +0000
committerTom Hacohen <tom@stosb.com>2012-06-10 08:43:49 +0000
commit13669e9e1987286583d47c4d8238780c96e2edf8 (patch)
treeea7815cb52c12f29181eaa791b1c209a46c7288a /legacy/evas/src/lib/main.c
parent33c71f97aa9a69492cfa590242ce075584434267 (diff)
Evas magic checks: Print magic errors by default.
We still don't print on NULL because there are two many such errors in evas, but at least we print on magic errors which are even worse. SVN revision: 71894
Diffstat (limited to '')
-rw-r--r--legacy/evas/src/lib/main.c52
1 files changed, 31 insertions, 21 deletions
diff --git a/legacy/evas/src/lib/main.c b/legacy/evas/src/lib/main.c
index f9998898a8..0431977589 100644
--- a/legacy/evas/src/lib/main.c
+++ b/legacy/evas/src/lib/main.c
@@ -6,7 +6,11 @@ EAPI Evas_Version *evas_version = &_version;
6 6
7int _evas_alloc_error = 0; 7int _evas_alloc_error = 0;
8static int _evas_debug_init = 0; 8static int _evas_debug_init = 0;
9static int _evas_debug_show = 0; 9static enum {
10 _EVAS_DEBUG_DEFAULT,
11 _EVAS_DEBUG_HIDE,
12 _EVAS_DEBUG_SHOW
13} _evas_debug_show = _EVAS_DEBUG_DEFAULT;
10static int _evas_debug_abort = 0; 14static int _evas_debug_abort = 0;
11 15
12EAPI Evas_Alloc_Error 16EAPI Evas_Alloc_Error
@@ -45,16 +49,27 @@ evas_mem_calloc(int size)
45 return NULL; 49 return NULL;
46} 50}
47 51
52static void
53_evas_debug_init_from_env()
54{
55 const char *tmp = getenv("EVAS_DEBUG_SHOW");
56 if (tmp)
57 {
58 int dbgshow = atoi(tmp);
59 _evas_debug_show = (dbgshow) ? _EVAS_DEBUG_SHOW : _EVAS_DEBUG_HIDE;
60 }
61 if (getenv("EVAS_DEBUG_ABORT")) _evas_debug_abort = 1;
62 _evas_debug_init = 1;
63}
64
48void 65void
49evas_debug_error(void) 66evas_debug_error(void)
50{ 67{
51 if (!_evas_debug_init) 68 if (!_evas_debug_init)
52 { 69 {
53 if (getenv("EVAS_DEBUG_SHOW")) _evas_debug_show = 1; 70 _evas_debug_init_from_env();
54 if (getenv("EVAS_DEBUG_ABORT")) _evas_debug_abort = 1;
55 _evas_debug_init = 1;
56 } 71 }
57 if (_evas_debug_show) 72 if (_evas_debug_show == _EVAS_DEBUG_SHOW)
58 CRIT("Evas Magic Check Failed!!!"); 73 CRIT("Evas Magic Check Failed!!!");
59} 74}
60 75
@@ -63,11 +78,9 @@ evas_debug_input_null(void)
63{ 78{
64 if (!_evas_debug_init) 79 if (!_evas_debug_init)
65 { 80 {
66 if (getenv("EVAS_DEBUG_SHOW")) _evas_debug_show = 1; 81 _evas_debug_init_from_env();
67 if (getenv("EVAS_DEBUG_ABORT")) _evas_debug_abort = 1;
68 _evas_debug_init = 1;
69 } 82 }
70 if (_evas_debug_show) 83 if (_evas_debug_show == _EVAS_DEBUG_SHOW)
71 CRIT("Input object pointer is NULL!"); 84 CRIT("Input object pointer is NULL!");
72 if (_evas_debug_abort) abort(); 85 if (_evas_debug_abort) abort();
73} 86}
@@ -77,11 +90,10 @@ evas_debug_magic_null(void)
77{ 90{
78 if (!_evas_debug_init) 91 if (!_evas_debug_init)
79 { 92 {
80 if (getenv("EVAS_DEBUG_SHOW")) _evas_debug_show = 1; 93 _evas_debug_init_from_env();
81 if (getenv("EVAS_DEBUG_ABORT")) _evas_debug_abort = 1;
82 _evas_debug_init = 1;
83 } 94 }
84 if (_evas_debug_show) 95 if ((_evas_debug_show == _EVAS_DEBUG_SHOW) ||
96 (_evas_debug_show == _EVAS_DEBUG_DEFAULT))
85 CRIT("Input object is zero'ed out (maybe a freed object or zero-filled RAM)!"); 97 CRIT("Input object is zero'ed out (maybe a freed object or zero-filled RAM)!");
86 if (_evas_debug_abort) abort(); 98 if (_evas_debug_abort) abort();
87} 99}
@@ -91,11 +103,10 @@ evas_debug_magic_wrong(DATA32 expected, DATA32 supplied)
91{ 103{
92 if (!_evas_debug_init) 104 if (!_evas_debug_init)
93 { 105 {
94 if (getenv("EVAS_DEBUG_SHOW")) _evas_debug_show = 1; 106 _evas_debug_init_from_env();
95 if (getenv("EVAS_DEBUG_ABORT")) _evas_debug_abort = 1;
96 _evas_debug_init = 1;
97 } 107 }
98 if (_evas_debug_show) 108 if ((_evas_debug_show == _EVAS_DEBUG_SHOW) ||
109 (_evas_debug_show == _EVAS_DEBUG_DEFAULT))
99 CRIT("Input object is wrong type\n" 110 CRIT("Input object is wrong type\n"
100 " Expected: %08x - %s\n" 111 " Expected: %08x - %s\n"
101 " Supplied: %08x - %s", 112 " Supplied: %08x - %s",
@@ -109,11 +120,10 @@ evas_debug_generic(const char *str)
109{ 120{
110 if (!_evas_debug_init) 121 if (!_evas_debug_init)
111 { 122 {
112 if (getenv("EVAS_DEBUG_SHOW")) _evas_debug_show = 1; 123 _evas_debug_init_from_env();
113 if (getenv("EVAS_DEBUG_ABORT")) _evas_debug_abort = 1;
114 _evas_debug_init = 1;
115 } 124 }
116 if (_evas_debug_show) 125 if ((_evas_debug_show == _EVAS_DEBUG_SHOW) ||
126 (_evas_debug_show == _EVAS_DEBUG_DEFAULT))
117 CRIT("%s", str); 127 CRIT("%s", str);
118 if (_evas_debug_abort) abort(); 128 if (_evas_debug_abort) abort();
119} 129}