summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAkira TAGOH <akira@tagoh.org>2007-12-02 06:31:50 +0000
committerAkira TAGOH <akira@tagoh.org>2007-12-02 06:31:50 +0000
commit822448d0cab52688d777ab88005b509c7b613fc1 (patch)
treedfa136fb02fef94b2feab1cd0da4e0fb10da9d83
parent06e661c290f1c1faea696951885a4db2abb019e9 (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--ChangeLog11
-rw-r--r--hieroglyph/hgmacros.h33
-rw-r--r--hieroglyph/hgobject.c9
-rw-r--r--hieroglyph/utils.c13
-rw-r--r--hieroglyph/utils.h8
-rw-r--r--hieroglyph/version.h.in2
-rw-r--r--tests/hgarray.c2
-rw-r--r--tests/hgobject.c7
8 files changed, 61 insertions, 24 deletions
diff --git a/ChangeLog b/ChangeLog
index af28580..20ad55d 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -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);