]> git.decadent.org.uk Git - ion3.git/blobdiff - ioncore/grouppholder.c
Imported Upstream version 20090110
[ion3.git] / ioncore / grouppholder.c
index 2d941e4166bf15d08cd8438b055ec2a5f9f1e31b..052f67725941761d643e4f2d1a286054146f607c 100644 (file)
@@ -1,7 +1,7 @@
 /*
  * ion/ioncore/grouppholder.c
  *
- * Copyright (c) Tuomo Valkonen 2005-2008
+ * Copyright (c) Tuomo Valkonen 2005-2009
  *
  * See the included file LICENSE for details.
  */
@@ -227,7 +227,7 @@ static WRegion *grouppholder_attach_recreate(WGroupPHolder *ph, int flags,
 {
     WRegionAttachData data2;
     WPHolder *root, *rph;
-    WGroup *grp;
+    WRegion *res;
     RP rp;
     
     rp.ph_head=get_head(ph);
@@ -247,16 +247,17 @@ static WRegion *grouppholder_attach_recreate(WGroupPHolder *ph, int flags,
     data2.u.n.fn=recreate_handler;
     data2.u.n.param=&rp;
     
-    grp=(WGroup*)pholder_do_attach(rph, flags, &data2);
+    res=pholder_do_attach(rph, flags, &data2);
     
-    if(grp!=NULL){
-        assert(OBJ_IS(grp, WGroup));
+    if(res!=NULL){
         rp.ph_head->recreate_pholder=NULL;
         /* It might be in use in attach chain! So defer. */
         mainloop_defer_destroy((Obj*)rph);
     }
 
-    return rp.reg_ret;
+    return (flags&PHOLDER_ATTACH_RETURN_CREATEROOT
+            ? (WRegion*)res
+            : rp.reg_ret);
 }