aboutsummaryrefslogtreecommitdiff
path: root/libdbusmenu-glib/client.c
diff options
context:
space:
mode:
authorTed Gould <ted@gould.cx>2010-07-14 09:25:12 -0500
committerTed Gould <ted@gould.cx>2010-07-14 09:25:12 -0500
commitbf9078707844bc3a658d6610c8ca145d80de9ec6 (patch)
tree26f6b0a25e26a17de746d3dc3bb04fe7c147171d /libdbusmenu-glib/client.c
parent2e974ea0fa59265a0ec4cce29cbb62519ce872cb (diff)
parent7c48e370ec2b9c3437a77e81b535b1f20672f817 (diff)
downloadlibdbusmenu-bf9078707844bc3a658d6610c8ca145d80de9ec6.tar.gz
libdbusmenu-bf9078707844bc3a658d6610c8ca145d80de9ec6.tar.bz2
libdbusmenu-bf9078707844bc3a658d6610c8ca145d80de9ec6.zip
Protecting from getting passed NULL GValues
Diffstat (limited to 'libdbusmenu-glib/client.c')
-rw-r--r--libdbusmenu-glib/client.c11
1 files changed, 11 insertions, 0 deletions
diff --git a/libdbusmenu-glib/client.c b/libdbusmenu-glib/client.c
index 871170a..2e985d6 100644
--- a/libdbusmenu-glib/client.c
+++ b/libdbusmenu-glib/client.c
@@ -716,6 +716,17 @@ menuitem_call_cb (DBusGProxy * proxy, GError * error, gpointer userdata)
void
dbusmenu_client_send_event (DbusmenuClient * client, gint id, const gchar * name, const GValue * value, guint timestamp)
{
+ g_return_if_fail(DBUSMENU_IS_CLIENT(client));
+ g_return_if_fail(id >= 0);
+ g_return_if_fail(name != NULL);
+
+ if (value == NULL) {
+ GValue internalval = {0};
+ g_value_init(&internalval, G_TYPE_INT);
+ g_value_set_int(&internalval, 0);
+ value = &internalval;
+ }
+
DbusmenuClientPrivate * priv = DBUSMENU_CLIENT_GET_PRIVATE(client);
org_ayatana_dbusmenu_event_async (priv->menuproxy, id, name, value, timestamp, menuitem_call_cb, GINT_TO_POINTER(id));
return;