diff options
author | Akira TAGOH <akira@tagoh.org> | 2007-12-02 06:31:50 +0000 |
---|---|---|
committer | Akira TAGOH <akira@tagoh.org> | 2007-12-02 06:31:50 +0000 |
commit | 822448d0cab52688d777ab88005b509c7b613fc1 (patch) | |
tree | dfa136fb02fef94b2feab1cd0da4e0fb10da9d83 | |
parent | 06e661c290f1c1faea696951885a4db2abb019e9 (diff) |
2007-12-02 Akira TAGOH <akira@tagoh.org>
* hieroglyph/utils.c (hg_quiet_warning_messages): new function.
(hg_allow_warning_messages): new function.
* tests/hgobject.c (test_hgobject_new): disable the warning messages
for some things that is intentional not to confuse.
(test_hg_object_dup): likewise.
* tests/hgarray.c (test_hg_object_array_subarray_new): likewise.
-rw-r--r-- | ChangeLog | 11 | ||||
-rw-r--r-- | hieroglyph/hgmacros.h | 33 | ||||
-rw-r--r-- | hieroglyph/hgobject.c | 9 | ||||
-rw-r--r-- | hieroglyph/utils.c | 13 | ||||
-rw-r--r-- | hieroglyph/utils.h | 8 | ||||
-rw-r--r-- | hieroglyph/version.h.in | 2 | ||||
-rw-r--r-- | tests/hgarray.c | 2 | ||||
-rw-r--r-- | tests/hgobject.c | 7 |
8 files changed, 61 insertions, 24 deletions
@@ -1,3 +1,14 @@ +2007-12-02 Akira TAGOH <akira@tagoh.org> + + * hieroglyph/utils.c (hg_quiet_warning_messages): new function. + (hg_allow_warning_messages): new function. + + * tests/hgobject.c (test_hgobject_new): disable the warning messages + for some things that is intentional not to confuse. + (test_hg_object_dup): likewise. + + * tests/hgarray.c (test_hg_object_array_subarray_new): likewise. + 2007-11-27 Akira TAGOH <akira@tagoh.org> * update-version: trivial update. diff --git a/hieroglyph/hgmacros.h b/hieroglyph/hgmacros.h index 6083cf7..be06ec7 100644 --- a/hieroglyph/hgmacros.h +++ b/hieroglyph/hgmacros.h @@ -36,6 +36,7 @@ G_BEGIN_DECLS #define hg_n_alignof(_hg_n_) \ ((((_hg_n_) / ALIGNOF_VOID_P) + (((_hg_n_) % ALIGNOF_VOID_P) ? 1 : 0)) * ALIGNOF_VOID_P) +#ifdef DEBUG #define hg_stacktrace() \ G_STMT_START { \ if (hg_is_stacktrace_enabled()) { \ @@ -45,14 +46,25 @@ G_BEGIN_DECLS g_free(__stacktrace__); \ } \ } G_STMT_END +#else /* !DEBUG */ +#define hg_stacktrace() +#endif /* DEBUG */ #ifdef __GNUC__ +#define _hg_return_if_fail_warning(__domain__,__func__,__expr__) \ + G_STMT_START { \ + if (hg_allow_warning_messages()) { \ + g_return_if_fail_warning(__domain__, \ + __func__, \ + __expr__); \ + } \ + } G_STMT_END #define _hg_return_after_eval_if_fail(__expr__,__eval__) \ G_STMT_START { \ if (G_LIKELY(__expr__)) { \ } else { \ - g_return_if_fail_warning(G_LOG_DOMAIN, \ - __PRETTY_FUNCTION__, \ - #__expr__); \ + _hg_return_if_fail_warning(G_LOG_DOMAIN, \ + __PRETTY_FUNCTION__, \ + #__expr__); \ __eval__; \ return; \ } \ @@ -61,9 +73,9 @@ G_BEGIN_DECLS G_STMT_START { \ if (G_LIKELY(__expr__)) { \ } else { \ - g_return_if_fail_warning(G_LOG_DOMAIN, \ - __PRETTY_FUNCTION__, \ - #__expr__); \ + _hg_return_if_fail_warning(G_LOG_DOMAIN, \ + __PRETTY_FUNCTION__, \ + #__expr__); \ __eval__; \ return (__val__); \ } \ @@ -99,7 +111,6 @@ G_BEGIN_DECLS } G_STMT_END #endif /* __GNUC__ */ -#ifdef DEBUG #define hg_return_if_fail(__expr__) \ _hg_return_after_eval_if_fail(__expr__,hg_stacktrace()) #define hg_return_val_if_fail(__expr__,__val__) \ @@ -108,14 +119,6 @@ G_BEGIN_DECLS _hg_return_after_eval_if_fail(__expr__,hg_stacktrace();__eval__) #define hg_return_val_after_eval_if_fail(__expr__,__val__,__eval__) \ _hg_return_val_after_eval_if_fail(__expr__,__val__,hg_stacktrace();__eval__) -#else /* !DEBUG */ -#define hg_return_if_fail(__expr__) g_return_if_fail(__expr__) -#define hg_return_val_if_fail(__expr__,__val__) g_return_val_if_fail(__expr__, __val__) -#define hg_return_after_eval_if_fail(__expr__,__eval__) \ - _hg_return_after_eval_if_fail(__expr__,__eval__) -#define hg_return_val_after_eval_if_fail(__expr__,__val__,__eval__) \ - _hg_return_val_after_eval_if_fail(__expr__, __val__,__eval__) -#endif /* DEBUG */ G_END_DECLS diff --git a/hieroglyph/hgobject.c b/hieroglyph/hgobject.c index 95aec7c..555c30b 100644 --- a/hieroglyph/hgobject.c +++ b/hieroglyph/hgobject.c @@ -164,8 +164,7 @@ hg_object_free(hg_vm_t *vm, hg_object_file_free(vm, object); break; default: - g_warning("[BUG] Unknown object type `%d'", HG_OBJECT_GET_TYPE (object)); - break; + g_warning("[BUG] Unknown object type `%d' during destroying", HG_OBJECT_GET_TYPE (object)); } } @@ -206,7 +205,7 @@ hg_object_dup(hg_vm_t *vm, retval = object; break; default: - g_warning("[BUG] Unknown object type `%d'", HG_OBJECT_GET_TYPE (object)); + g_warning("[BUG] Unknown object type `%d' during duplicating", HG_OBJECT_GET_TYPE (object)); break; } @@ -268,7 +267,7 @@ hg_object_compare(hg_object_t *object1, case HG_OBJECT_TYPE_OPERATOR: return hg_object_operator_compare(object1, object2); default: - g_warning("Unknown object type `%d' in comparing", HG_OBJECT_GET_TYPE (object1)); + g_warning("Unknown object type `%d' during comparing", HG_OBJECT_GET_TYPE (object1)); } return FALSE; @@ -346,7 +345,7 @@ hg_object_dump(hg_object_t *object, case HG_OBJECT_TYPE_OPERATOR: return hg_object_operator_dump(object, verbose); default: - g_warning("Unknown object type `%d' in dumping", HG_OBJECT_GET_TYPE (object)); + g_warning("Unknown object type `%d' during dumping", HG_OBJECT_GET_TYPE (object)); } return g_string_free(string, FALSE); diff --git a/hieroglyph/utils.c b/hieroglyph/utils.c index a0b8fb9..18f0970 100644 --- a/hieroglyph/utils.c +++ b/hieroglyph/utils.c @@ -33,6 +33,7 @@ static gboolean __hg_stacktrace_feature = TRUE; +static gboolean __hg_warning_message_feature = TRUE; /* * private functions @@ -81,3 +82,15 @@ hg_is_stacktrace_enabled(void) return __hg_stacktrace_feature; } #endif + +void +hg_quiet_warning_messages(gboolean flag) +{ + __hg_warning_message_feature = !flag; +} + +gboolean +hg_allow_warning_messages(void) +{ + return __hg_warning_message_feature; +} diff --git a/hieroglyph/utils.h b/hieroglyph/utils.h index 7981e6c..c9856e3 100644 --- a/hieroglyph/utils.h +++ b/hieroglyph/utils.h @@ -29,9 +29,11 @@ G_BEGIN_DECLS -gchar *hg_get_stacktrace (void) G_GNUC_MALLOC; -void hg_use_stacktrace (gboolean flag); -gboolean hg_is_stacktrace_enabled(void) __attribute__ ((weak)); +gchar *hg_get_stacktrace (void) G_GNUC_MALLOC; +void hg_use_stacktrace (gboolean flag); +gboolean hg_is_stacktrace_enabled (void) __attribute__ ((weak)); +void hg_quiet_warning_messages(gboolean flag); +gboolean hg_allow_warning_messages(void); G_END_DECLS diff --git a/hieroglyph/version.h.in b/hieroglyph/version.h.in index 65a8181..e945280 100644 --- a/hieroglyph/version.h.in +++ b/hieroglyph/version.h.in @@ -30,7 +30,7 @@ G_BEGIN_DECLS #define HIEROGLYPH_VERSION "@VERSION@" -#define HIEROGLYPH_UUID "0c180155-7a70-4aea-bdeb-0742542638a4" +#define HIEROGLYPH_UUID "6dad3940-c40d-4c93-968e-42e9829d03db" const char *__hg_rcsid G_GNUC_UNUSED = "$Rev$"; diff --git a/tests/hgarray.c b/tests/hgarray.c index 0809415..b933014 100644 --- a/tests/hgarray.c +++ b/tests/hgarray.c @@ -97,9 +97,11 @@ TDEF (hg_object_array_subarray_new) if (hg_is_stacktrace_enabled) flag = hg_is_stacktrace_enabled(); hg_use_stacktrace(FALSE); + hg_quiet_warning_messages(TRUE); obj2 = hg_object_array_subarray_new(vm, obj, 0, 0); if (hg_is_stacktrace_enabled) hg_use_stacktrace(flag); + hg_quiet_warning_messages(FALSE); fail_unless(obj2 == NULL, "Not allowed to create an array object without the parent array object."); diff --git a/tests/hgobject.c b/tests/hgobject.c index 8be5fb0..341cce3 100644 --- a/tests/hgobject.c +++ b/tests/hgobject.c @@ -67,9 +67,13 @@ TDEF (hg_object_new) if (hg_is_stacktrace_enabled) flag = hg_is_stacktrace_enabled(); hg_use_stacktrace(FALSE); + /* disable warnings */ + hg_quiet_warning_messages(TRUE); + obj = hg_object_new(vm, 0); if (hg_is_stacktrace_enabled) hg_use_stacktrace(flag); + hg_quiet_warning_messages(FALSE); fail_unless(obj == NULL, "Not allowed to create empty object"); } @@ -102,8 +106,11 @@ TDEF (hg_object_dup) obj = hg_object_new(vm, 1); TNUL (obj); + /* disable warning messages */ + hg_quiet_warning_messages(TRUE); obj2 = hg_object_dup(vm, obj); fail_unless(obj2 == NULL, "Not allowed to duplicate the uninitialized object"); + hg_quiet_warning_messages(FALSE); hg_object_free(vm, obj); |