static void HHVM_METHOD(ImagickDraw, __clone) { auto wand = getDrawingWandResource(Object{this_}); auto newWand = CloneDrawingWand(wand->getWand()); if (newWand == nullptr) { IMAGICKDRAW_THROW("Failed to allocate DrawingWand structure"); } else { setWandResource(s_ImagickDraw, Object{this_}, newWand); } }
/* @description Returns an identical copy of the DrawingWand. */ value nMagick_draw_clone( value draw ) { value v; DrawingWand *drw; val_check_kind( draw, k_draw ); drw = DRAW( draw ); v = alloc_abstract( k_draw, CloneDrawingWand( drw ) ); val_gc( v, nMagick_draw_close ); return v; }