132 lines
3.6 KiB
Diff
132 lines
3.6 KiB
Diff
commit 7222ad74d05fa226de5f236539a67e366a66ad56
|
|
Author: Marc-Antoine Perennou <Marc-Antoine@Perennou.com>
|
|
Date: Thu Dec 2 23:22:02 2010 +0100
|
|
|
|
Follow on to last patch to clean up goto handling
|
|
|
|
diff --git a/modules/dbus.c b/modules/dbus.c
|
|
index 94267e8..d422e68 100644
|
|
--- a/modules/dbus.c
|
|
+++ b/modules/dbus.c
|
|
@@ -804,10 +804,10 @@ gjs_js_dbus_unwatch_signal(JSContext *context,
|
|
{
|
|
jsval *argv = JS_ARGV(context, vp);
|
|
JSObject *obj = JS_THIS_OBJECT(context, vp);
|
|
- char *bus_name;
|
|
- char *object_path;
|
|
- char *iface;
|
|
- char *signal;
|
|
+ char *bus_name = NULL;
|
|
+ char *object_path = NULL;
|
|
+ char *iface = NULL;
|
|
+ char *signal = NULL;
|
|
SignalHandler *handler;
|
|
DBusBusType bus_type;
|
|
JSBool ret = JS_FALSE;
|
|
@@ -831,25 +831,25 @@ gjs_js_dbus_unwatch_signal(JSContext *context,
|
|
if (!fill_with_null_or_string(context, &bus_name, argv[0]))
|
|
return JS_FALSE;
|
|
if (!fill_with_null_or_string(context, &object_path, argv[1]))
|
|
- goto object_path_fail;
|
|
+ goto fail;
|
|
if (!fill_with_null_or_string(context, &iface, argv[2]))
|
|
- goto iface_fail;
|
|
+ goto fail;
|
|
if (!fill_with_null_or_string(context, &signal, argv[3]))
|
|
- goto signal_fail;
|
|
+ goto fail;
|
|
|
|
/* we don't complain if the signal seems to have been already removed
|
|
* or to never have been watched, to match g_signal_handler_disconnect
|
|
*/
|
|
if (!signal_handlers_by_callable) {
|
|
ret = JS_TRUE;
|
|
- goto free_and_exit;
|
|
+ goto fail;
|
|
}
|
|
|
|
handler = g_hash_table_lookup(signal_handlers_by_callable, JSVAL_TO_OBJECT(argv[4]));
|
|
|
|
if (!handler) {
|
|
ret = JS_TRUE;
|
|
- goto free_and_exit;
|
|
+ goto fail;
|
|
}
|
|
|
|
/* This should dispose the handler which should in turn
|
|
@@ -868,13 +868,10 @@ gjs_js_dbus_unwatch_signal(JSContext *context,
|
|
|
|
ret = JS_TRUE;
|
|
|
|
- free_and_exit:
|
|
+ fail:
|
|
g_free(signal);
|
|
- signal_fail:
|
|
g_free(iface);
|
|
- iface_fail:
|
|
g_free(object_path);
|
|
- object_path_fail:
|
|
g_free(bus_name);
|
|
|
|
return ret;
|
|
@@ -892,10 +889,10 @@ gjs_js_dbus_emit_signal(JSContext *context,
|
|
DBusMessage *message;
|
|
DBusMessageIter arg_iter;
|
|
DBusSignatureIter sig_iter;
|
|
- char *object_path;
|
|
- char *iface;
|
|
- char *signal;
|
|
- char *in_signature;
|
|
+ char *object_path = NULL;
|
|
+ char *iface = NULL;
|
|
+ char *signal = NULL;
|
|
+ char *in_signature = NULL;
|
|
DBusBusType bus_type;
|
|
JSBool ret = JS_FALSE;
|
|
|
|
@@ -917,16 +914,16 @@ gjs_js_dbus_emit_signal(JSContext *context,
|
|
return JS_FALSE;
|
|
iface = gjs_string_get_ascii(context, argv[1]);
|
|
if (!iface)
|
|
- goto iface_fail;
|
|
+ goto fail;
|
|
signal = gjs_string_get_ascii(context, argv[2]);
|
|
if (!signal)
|
|
- goto signal_fail;
|
|
+ goto fail;
|
|
in_signature = gjs_string_get_ascii(context, argv[3]);
|
|
if (!in_signature)
|
|
- goto in_signature_fail;
|
|
+ goto fail;
|
|
|
|
if (!bus_check(context, bus_type))
|
|
- goto free_and_exit;
|
|
+ goto fail;
|
|
|
|
gjs_debug(GJS_DEBUG_DBUS,
|
|
"Emitting signal %s %s %s",
|
|
@@ -946,7 +943,7 @@ gjs_js_dbus_emit_signal(JSContext *context,
|
|
|
|
if (!gjs_js_values_to_dbus(context, 0, argv[4], &arg_iter, &sig_iter)) {
|
|
dbus_message_unref(message);
|
|
- goto free_and_exit;
|
|
+ goto fail;
|
|
}
|
|
|
|
dbus_connection_send(bus_connection, message, NULL);
|
|
@@ -955,13 +952,10 @@ gjs_js_dbus_emit_signal(JSContext *context,
|
|
|
|
ret = JS_TRUE;
|
|
|
|
- free_and_exit:
|
|
+ fail:
|
|
g_free(in_signature);
|
|
- in_signature_fail:
|
|
g_free(signal);
|
|
- signal_fail:
|
|
g_free(iface);
|
|
- iface_fail:
|
|
g_free(object_path);
|
|
|
|
return ret;
|