X-Git-Url: https://git.decadent.org.uk/gitweb/?a=blobdiff_plain;f=ioncore%2Fgrouppholder.c;h=052f67725941761d643e4f2d1a286054146f607c;hb=refs%2Ftags%2F20090110;hp=2d941e4166bf15d08cd8438b055ec2a5f9f1e31b;hpb=29aae1975d46f66b97a2b873f1875eded8c6fbc3;p=ion3.git diff --git a/ioncore/grouppholder.c b/ioncore/grouppholder.c index 2d941e4..052f677 100644 --- a/ioncore/grouppholder.c +++ b/ioncore/grouppholder.c @@ -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); }