# HG changeset patch # User Thinker K.F. Li # Date 1299975057 -28800 # Node ID 8ecee58c85c68a30bb215428795ae9d1408060ac # Parent 4c5bcaba28ea3063cd32c977fbfa6b06991fdfbd Fix issue of crashing for cloned subtree diff -r 4c5bcaba28ea -r 8ecee58c85c6 nodejs/coord.cc --- a/nodejs/coord.cc Fri Mar 11 14:07:55 2011 +0800 +++ b/nodejs/coord.cc Sun Mar 13 08:10:57 2011 +0800 @@ -232,6 +232,15 @@ xnjsmb_coord_free_subtree(rdman, coord); } +static void +_xnjsmb_coord_clone_from_subtree_mod(Handle src, Handle ret) { + Handle js_rt; + Handle ret_obj = ret->ToObject(); + + js_rt = GET(src, "mbrt")->ToObject(); + SET(ret_obj, "mbrt", js_rt); +} + static coord_t * xnjsmb_coord_clone_from_subtree(coord_t *coord, Handle self, coord_t *src, const char **err) { diff -r 4c5bcaba28ea -r 8ecee58c85c6 nodejs/coord.m4 --- a/nodejs/coord.m4 Fri Mar 11 14:07:55 2011 +0800 +++ b/nodejs/coord.m4 Sun Mar 13 08:10:57 2011 +0800 @@ -11,7 +11,7 @@ METHOD([clone_from_subtree], [xnjsmb_coord_clone_from_subtree], (SELF, OBJ([src], [coord], [coord_t]), ERR), 1, [OBJ([coord], [coord_t])], - (([MOD], [xnjsmb_mb_rt_objs_mod]))), + (([MOD], [_xnjsmb_coord_clone_from_subtree_mod]))), METHOD([show], [xnjsmb_coord_show], (SELF), 0, []), METHOD([hide], [xnjsmb_coord_hide], (SELF), 0, [])], ((GET_INDEX, (coord_get_index, NUMBER)), diff -r 4c5bcaba28ea -r 8ecee58c85c6 nodejs/mbfly_njs.cc --- a/nodejs/mbfly_njs.cc Fri Mar 11 14:07:55 2011 +0800 +++ b/nodejs/mbfly_njs.cc Sun Mar 13 08:10:57 2011 +0800 @@ -33,8 +33,8 @@ return coord; } -void -_xnjsmb_mb_rt_objs_mod(Handle mbrt, Handle ret) { +static void +xnjsmb_mb_rt_objs_mod(Handle mbrt, Handle ret) { Handle ret_obj = ret->ToObject(); SET(ret_obj, "mbrt", mbrt); diff -r 4c5bcaba28ea -r 8ecee58c85c6 nodejs/mbfly_njs.h --- a/nodejs/mbfly_njs.h Fri Mar 11 14:07:55 2011 +0800 +++ b/nodejs/mbfly_njs.h Sun Mar 13 08:10:57 2011 +0800 @@ -77,8 +77,4 @@ v8::Handle export_xnjsmb_auto_subject_new(subject_t *subject); void xnjsmb_observer_init(void); -extern void _xnjsmb_mb_rt_objs_mod(v8::Handle mbrt, - v8::Handle ret); -#define xnjsmb_mb_rt_objs_mod _xnjsmb_mb_rt_objs_mod - #endif /* __MBFLY_NJS_H_ */