aboutsummaryrefslogtreecommitdiff
path: root/libdbusmenu-glib/menuitem.c
diff options
context:
space:
mode:
authorTed Gould <ted@gould.cx>2011-02-24 10:26:27 -0600
committerTed Gould <ted@gould.cx>2011-02-24 10:26:27 -0600
commit3cb0a087b79ef0af68b3ba73944f503823603bff (patch)
tree99b8d5639155fc2fd159f5435e61c2d7fa26c51b /libdbusmenu-glib/menuitem.c
parent37fb090b4f9fb1e1a894c5c57e7c3d28eb71f92d (diff)
downloadlibdbusmenu-3cb0a087b79ef0af68b3ba73944f503823603bff.tar.gz
libdbusmenu-3cb0a087b79ef0af68b3ba73944f503823603bff.tar.bz2
libdbusmenu-3cb0a087b79ef0af68b3ba73944f503823603bff.zip
Checking to ensure we're the parent before deleting
Diffstat (limited to 'libdbusmenu-glib/menuitem.c')
-rw-r--r--libdbusmenu-glib/menuitem.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/libdbusmenu-glib/menuitem.c b/libdbusmenu-glib/menuitem.c
index 49b83ce..0bbce8c 100644
--- a/libdbusmenu-glib/menuitem.c
+++ b/libdbusmenu-glib/menuitem.c
@@ -781,6 +781,11 @@ dbusmenu_menuitem_child_delete (DbusmenuMenuitem * mi, DbusmenuMenuitem * child)
g_return_val_if_fail(DBUSMENU_IS_MENUITEM(mi), FALSE);
g_return_val_if_fail(DBUSMENU_IS_MENUITEM(child), FALSE);
+ if (dbusmenu_menuitem_get_parent(child) != mi) {
+ g_warning("Trying to remove a child that doesn't believe we're it's parent.");
+ return FALSE;
+ }
+
DbusmenuMenuitemPrivate * priv = DBUSMENU_MENUITEM_GET_PRIVATE(mi);
priv->children = g_list_remove(priv->children, child);
dbusmenu_menuitem_unparent(child);