diff options
author | matz <matz@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 1999-05-25 08:26:20 +0000 |
---|---|---|
committer | matz <matz@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 1999-05-25 08:26:20 +0000 |
commit | 1307f8d555235116f0f0c79b9902df9cfd4bff12 (patch) | |
tree | faf8962d1f1fcdb54db653b4a99b148fdecea7e6 /gc.c | |
parent | 1aba398e29bd9134f83c165a2495883f72cbbb3d (diff) |
regexp null pattern
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_3@477 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'gc.c')
-rw-r--r-- | gc.c | 15 |
1 files changed, 13 insertions, 2 deletions
@@ -1072,15 +1072,26 @@ call_final(os, obj) return obj; } +static VALUE +run_single_final(args) + VALUE *args; +{ + rb_eval_cmd(args[0], args[1]); + return Qnil; +} + static void run_final(obj) VALUE obj; { - int i; + int i, status; + VALUE args[2]; obj = rb_obj_id(obj); /* make obj into id */ + args[1] = rb_ary_new3(1, obj); for (i=0; i<RARRAY(finalizers)->len; i++) { - rb_eval_cmd(RARRAY(finalizers)->ptr[i], rb_ary_new3(1, obj)); + args[0] = RARRAY(finalizers)->ptr[i]; + rb_protect(run_single_final, (VALUE)args, &status); } } |