diff options
Diffstat (limited to 'src/libmowgli/object/message.c')
-rw-r--r-- | src/libmowgli/object/message.c | 68 |
1 files changed, 28 insertions, 40 deletions
diff --git a/src/libmowgli/object/message.c b/src/libmowgli/object/message.c index e4328c8..d99f53b 100644 --- a/src/libmowgli/object/message.c +++ b/src/libmowgli/object/message.c @@ -23,71 +23,61 @@ #include "mowgli.h" -void mowgli_object_class_message_handler_attach(mowgli_object_class_t *klass, mowgli_object_message_handler_t *sig) +void +mowgli_object_class_message_handler_attach(mowgli_object_class_t *klass, mowgli_object_message_handler_t *sig) { - if (klass == NULL) - mowgli_throw_exception(mowgli.object_messaging.invalid_object_class_exception); - - if (sig == NULL) - mowgli_throw_exception(mowgli.object_messaging.invalid_signal_exception); + return_if_fail(klass != NULL); + return_if_fail(sig != NULL); mowgli_node_add(sig, mowgli_node_create(), &klass->message_handlers); } -void mowgli_object_class_message_handler_detach(mowgli_object_class_t *klass, mowgli_object_message_handler_t *sig) +void +mowgli_object_class_message_handler_detach(mowgli_object_class_t *klass, mowgli_object_message_handler_t *sig) { - mowgli_node_t *n; + return_if_fail(klass != NULL); + return_if_fail(sig != NULL); - if (klass == NULL) - mowgli_throw_exception(mowgli.object_messaging.invalid_object_class_exception); - - if (sig == NULL) - mowgli_throw_exception(mowgli.object_messaging.invalid_signal_exception); + mowgli_node_t *n; n = mowgli_node_find(sig, &klass->message_handlers); mowgli_node_delete(n, &klass->message_handlers); mowgli_node_free(n); } -void mowgli_object_message_handler_attach(mowgli_object_t *self, mowgli_object_message_handler_t *sig) +void +mowgli_object_message_handler_attach(mowgli_object_t *self, mowgli_object_message_handler_t *sig) { - if (self == NULL) - mowgli_throw_exception(mowgli.object_messaging.invalid_object_exception); - - if (sig == NULL) - mowgli_throw_exception(mowgli.object_messaging.invalid_signal_exception); + return_if_fail(self != NULL); + return_if_fail(sig != NULL); mowgli_node_add(sig, mowgli_node_create(), &self->message_handlers); } -void mowgli_object_message_handler_detach(mowgli_object_t *self, mowgli_object_message_handler_t *sig) +void +mowgli_object_message_handler_detach(mowgli_object_t *self, mowgli_object_message_handler_t *sig) { - mowgli_node_t *n; + return_if_fail(self != NULL); + return_if_fail(sig != NULL); - if (self == NULL) - mowgli_throw_exception(mowgli.object_messaging.invalid_object_exception); - - if (sig == NULL) - mowgli_throw_exception(mowgli.object_messaging.invalid_signal_exception); + mowgli_node_t *n; n = mowgli_node_find(sig, &self->message_handlers); mowgli_node_delete(n, &self->message_handlers); mowgli_node_free(n); } -void mowgli_object_message_broadcast(mowgli_object_t *self, const char *name, ...) +void +mowgli_object_message_broadcast(mowgli_object_t *self, const char *name, ...) { + return_if_fail(self != NULL); + return_if_fail(name != NULL); + mowgli_argstack_t *stack; mowgli_object_message_handler_t *sig = NULL; mowgli_node_t *n; va_list va; - if (self == NULL) - mowgli_throw_exception(mowgli.object_messaging.invalid_object_exception); - - if (name == NULL) - mowgli_throw_exception(mowgli.null_pointer_exception); - /* try to find a signal to compile the argument stack from, we start with self::klass first. */ MOWGLI_LIST_FOREACH(n, self->klass->message_handlers.head) { @@ -101,7 +91,6 @@ void mowgli_object_message_broadcast(mowgli_object_t *self, const char *name, .. } if (sig == NULL) - { MOWGLI_LIST_FOREACH(n, self->klass->message_handlers.head) { mowgli_object_message_handler_t *sig2 = (mowgli_object_message_handler_t *) n->data; @@ -112,11 +101,10 @@ void mowgli_object_message_broadcast(mowgli_object_t *self, const char *name, .. break; } } - } - /* return if no signals found, else compile the argstack */ - if (sig == NULL) - return; + /* return if no signals found, else compile the argstack */ + if (sig == NULL) + return; va_start(va, name); stack = mowgli_argstack_create_from_va_list(sig->descstr, va); @@ -126,7 +114,7 @@ void mowgli_object_message_broadcast(mowgli_object_t *self, const char *name, .. { sig = (mowgli_object_message_handler_t *) n->data; - if (!strcasecmp(sig->name, name) && sig->handler != NULL) + if (!strcasecmp(sig->name, name) && (sig->handler != NULL)) sig->handler(self, sig, stack); } @@ -134,7 +122,7 @@ void mowgli_object_message_broadcast(mowgli_object_t *self, const char *name, .. { sig = (mowgli_object_message_handler_t *) n->data; - if (!strcasecmp(sig->name, name) && sig->handler != NULL) + if (!strcasecmp(sig->name, name) && (sig->handler != NULL)) sig->handler(self, sig, stack); } |