/*
* ion/ioncore/grouppholder.c
*
- * Copyright (c) Tuomo Valkonen 2005-2008.
+ * Copyright (c) Tuomo Valkonen 2005-2009.
*
* See the included file LICENSE for details.
*/
{
WRegionAttachData data2;
WPHolder *root, *rph;
- WGroup *grp;
+ WRegion *res;
RP rp;
rp.ph_head=get_head(ph);
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);
}