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=0c733f17d41080cd8240eecc5251d08a1776cdc5;hpb=3b8366cb81e35b88b125cfcecbef2c927b2618b6 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); }