X-Git-Url: https://git.decadent.org.uk/gitweb/?p=ion3.git;a=blobdiff_plain;f=ioncore%2Fgrouppholder.c;fp=ioncore%2Fgrouppholder.c;h=052f67725941761d643e4f2d1a286054146f607c;hp=2d941e4166bf15d08cd8438b055ec2a5f9f1e31b;hb=e3aec18706513a87eaa7839dfdaf7e0fcd0d8d2a;hpb=29aae1975d46f66b97a2b873f1875eded8c6fbc3 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); }