aboutsummaryrefslogtreecommitdiff
path: root/libdbusmenu-glib/server.c
diff options
context:
space:
mode:
Diffstat (limited to 'libdbusmenu-glib/server.c')
-rw-r--r--libdbusmenu-glib/server.c29
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);