From 9531aef9eba120e3c75f6ade0931f97c92c7a43b Mon Sep 17 00:00:00 2001 From: matz Date: Wed, 28 Jul 2004 01:22:49 +0000 Subject: * env.h: remove argv from ruby_frame. * eval.c (rb_eval): no more copy on write. * eval.c (assign): ditto. * eval.c (rb_call0): can receive *rest by specifying negative argc. (-1 means 0 arg and *rest, -2 means 1 arg and *rest...) * eval.c (rb_call0): properly set frame's argc counter. * gc.c (rb_gc_mark_frame): need not to mark frame's argv * gc.c (run_final): wrong order of data. [ruby-dev:23948] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@6708 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- gc.c | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) (limited to 'gc.c') diff --git a/gc.c b/gc.c index 13a123fc16..dfc98622f6 100644 --- a/gc.c +++ b/gc.c @@ -1243,7 +1243,6 @@ void rb_gc_mark_frame(frame) struct FRAME *frame; { - mark_locations_array(frame->argv, frame->argc); gc_mark((VALUE)frame->node, 0); } @@ -1767,8 +1766,8 @@ run_final(obj) if (finalizer_table && st_delete(finalizer_table, (st_data_t*)&obj, &table)) { for (i=0; ilen; i++) { VALUE final = RARRAY(table)->ptr[i]; - args[0] = FIX2INT(RARRAY(final)->ptr[0]); - args[2] = RARRAY(final)->ptr[1]; + args[0] = RARRAY(final)->ptr[1]; + args[2] = FIX2INT(RARRAY(final)->ptr[0]); rb_protect((VALUE(*)_((VALUE)))run_single_final, (VALUE)args, &status); } } -- cgit v1.2.3