summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--clutter/clutter-actor.c14
1 files changed, 14 insertions, 0 deletions
diff --git a/clutter/clutter-actor.c b/clutter/clutter-actor.c
index d966e40c6..fedcbfe09 100644
--- a/clutter/clutter-actor.c
+++ b/clutter/clutter-actor.c
@@ -4198,6 +4198,13 @@ clutter_actor_remove_child_internal (ClutterActor *self,
gboolean stop_transitions;
GObject *obj;
+ if (self == child)
+ {
+ g_warning ("Cannot remove actor '%s' from itself.",
+ _clutter_actor_get_debug_name (self));
+ return;
+ }
+
destroy_meta = (flags & REMOVE_CHILD_DESTROY_META) != 0;
emit_parent_set = (flags & REMOVE_CHILD_EMIT_PARENT_SET) != 0;
emit_actor_removed = (flags & REMOVE_CHILD_EMIT_ACTOR_REMOVED) != 0;
@@ -12777,6 +12784,13 @@ clutter_actor_add_child_internal (ClutterActor *self,
ClutterActor *old_first_child, *old_last_child;
GObject *obj;
+ if (self == child)
+ {
+ g_warning ("Cannot add the actor '%s' to itself.",
+ _clutter_actor_get_debug_name (self));
+ return;
+ }
+
if (child->priv->parent != NULL)
{
g_warning ("The actor '%s' already has a parent, '%s'. You must "