diff options
Diffstat (limited to 'libdbusmenu-glib/server.c')
-rw-r--r-- | libdbusmenu-glib/server.c | 29 |
1 files changed, 21 insertions, 8 deletions
diff --git a/libdbusmenu-glib/server.c b/libdbusmenu-glib/server.c index f47bb5d..e07af27 100644 --- a/libdbusmenu-glib/server.c +++ b/libdbusmenu-glib/server.c @@ -215,9 +215,9 @@ static gboolean layout_update_idle (gpointer user_data); static GDBusNodeInfo * dbusmenu_node_info = NULL; static GDBusInterfaceInfo * dbusmenu_interface_info = NULL; static const GDBusInterfaceVTable dbusmenu_interface_table = { - method_call: bus_method_call, - get_property: bus_get_prop, - set_property: NULL /* No properties that can be set */ + .method_call = bus_method_call, + .get_property = bus_get_prop, + .set_property = NULL /* No properties that can be set */ }; static method_table_t dbusmenu_method_table[METHOD_COUNT]; @@ -292,7 +292,7 @@ dbusmenu_server_class_init (DbusmenuServerClass *class) @arg2: The timestamp of when the event happened This is signaled when a menuitem under this server - sends it's activate signal. + sends its activate signal. */ signals[ITEM_ACTIVATION] = g_signal_new(DBUSMENU_SERVER_SIGNAL_ITEM_ACTIVATION, G_TYPE_FROM_CLASS(class), @@ -1070,8 +1070,6 @@ menuitem_property_idle (gpointer user_data) g_error_free(error); megadata[0] = NULL; error_nosend = TRUE; - } else { - g_variant_ref_sink(megadata[0]); } } @@ -1088,8 +1086,6 @@ menuitem_property_idle (gpointer user_data) g_error_free(error); megadata[1] = NULL; error_nosend = TRUE; - } else { - g_variant_ref_sink(megadata[1]); } } @@ -1331,6 +1327,9 @@ bus_get_layout (DbusmenuServer * server, GVariant * params, GDBusMethodInvocatio if (mi != NULL) { items = dbusmenu_menuitem_build_variant(mi, props, recurse); + if (items) { + g_variant_ref_sink(items); + } } } g_free(props); @@ -1360,6 +1359,8 @@ bus_get_layout (DbusmenuServer * server, GVariant * params, GDBusMethodInvocatio g_variant_builder_add_value(&tuplebuilder, g_variant_new_uint32(revision)); g_variant_builder_add_value(&tuplebuilder, items); + g_variant_unref(items); + GVariant * retval = g_variant_builder_end(&tuplebuilder); // g_debug("Sending layout type: %s", g_variant_get_type_string(retval)); g_dbus_method_invocation_return_value(invocation, @@ -1504,6 +1505,9 @@ bus_get_group_properties (DbusmenuServer * server, GVariant * params, GDBusMetho g_variant_builder_init(&wbuilder, G_VARIANT_TYPE_TUPLE); g_variant_builder_add(&wbuilder, "i", id); GVariant * props = dbusmenu_menuitem_properties_variant(mi, NULL); + if (props != NULL) { + g_variant_ref(props); + } if (props == NULL) { GError * error = NULL; @@ -1516,6 +1520,7 @@ bus_get_group_properties (DbusmenuServer * server, GVariant * params, GDBusMetho } g_variant_builder_add_value(&wbuilder, props); + g_variant_unref(props); GVariant * mi_data = g_variant_builder_end(&wbuilder); g_variant_builder_add_value(&builder, mi_data); @@ -1613,6 +1618,7 @@ bus_get_children (DbusmenuServer * server, GVariant * params, GDBusMethodInvocat GVariant * end = g_variant_builder_end(&builder); ret = g_variant_new_tuple(&end, 1); + g_variant_ref_sink(ret); } else { GError * error = NULL; ret = g_variant_parse(G_VARIANT_TYPE("(a(ia{sv}))"), "([(0, {})],)", NULL, NULL, &error); @@ -1624,6 +1630,7 @@ bus_get_children (DbusmenuServer * server, GVariant * params, GDBusMethodInvocat } g_dbus_method_invocation_return_value(invocation, ret); + g_variant_unref(ret); return; } @@ -1705,6 +1712,8 @@ bus_event (DbusmenuServer * server, GVariant * params, GDBusMethodInvocation * i } else { if (~g_dbus_message_get_flags (g_dbus_method_invocation_get_message (invocation)) & G_DBUS_MESSAGE_FLAGS_NO_REPLY_EXPECTED) { g_dbus_method_invocation_return_value(invocation, NULL); + } else { + g_object_unref(invocation); } } @@ -1755,6 +1764,8 @@ bus_event_group (DbusmenuServer * server, GVariant * params, GDBusMethodInvocati if (gotone) { if (~g_dbus_message_get_flags (g_dbus_method_invocation_get_message (invocation)) & G_DBUS_MESSAGE_FLAGS_NO_REPLY_EXPECTED) { g_dbus_method_invocation_return_value(invocation, g_variant_new_tuple(&errors, 1)); + } else { + g_object_unref(invocation); } } else { gchar * ids = g_variant_print(errors, FALSE); @@ -1867,6 +1878,8 @@ bus_about_to_show_group (DbusmenuServer * server, GVariant * params, GDBusMethod g_variant_builder_add_value(&tuple, errors); g_dbus_method_invocation_return_value(invocation, g_variant_builder_end(&tuple)); + } else { + g_object_unref(invocation); } } else { gchar * ids = g_variant_print(errors, FALSE); |