ruby-changes:4393
From: ko1@a...
Date: Wed, 2 Apr 2008 06:30:56 +0900 (JST)
Subject: [ruby-changes:4393] matz - Ruby:r15884 (trunk): * include/ruby/node.h: add new constants for rb_call()'s scope.
matz 2008-04-02 06:30:36 +0900 (Wed, 02 Apr 2008) New Revision: 15884 Modified files: trunk/ChangeLog trunk/eval.c trunk/include/ruby/node.h trunk/vm.c Log: * include/ruby/node.h: add new constants for rb_call()'s scope. * eval.c (iterate_method): use CALL_* scope constant to specify proper scope value. * eval.c (rb_each, rb_apply, rb_funcall, rb_funcall2, rb_funcall3): ditto. http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/trunk/ChangeLog?r1=15884&r2=15883&diff_format=u http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/trunk/include/ruby/node.h?r1=15884&r2=15883&diff_format=u http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/trunk/eval.c?r1=15884&r2=15883&diff_format=u http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/trunk/vm.c?r1=15884&r2=15883&diff_format=u Index: include/ruby/node.h =================================================================== --- include/ruby/node.h (revision 15883) +++ include/ruby/node.h (revision 15884) @@ -475,6 +475,11 @@ #define NOEX_WITH(n, s) ((s << 8) | n) #define NOEX_WITH_SAFE(n) NOEX_WITH(n, rb_safe_level()) +#define CALL_PUBLIC 0 +#define CALL_FCALL 1 +#define CALL_VCALL 2 +#define CALL_SUPER 3 + VALUE rb_parser_new(void); VALUE rb_parser_end_seen_p(VALUE); VALUE rb_parser_encoding(VALUE); Index: ChangeLog =================================================================== --- ChangeLog (revision 15883) +++ ChangeLog (revision 15884) @@ -1,3 +1,13 @@ +Wed Apr 2 06:24:06 2008 Yukihiro Matsumoto <matz@r...> + + * include/ruby/node.h: add new constants for rb_call()'s scope. + + * eval.c (iterate_method): use CALL_* scope constant to specify + proper scope value. + + * eval.c (rb_each, rb_apply, rb_funcall, rb_funcall2, rb_funcall3): + ditto. + Tue Apr 1 21:19:41 2008 Yukihiro Matsumoto <matz@r...> * rational.c: need to include <float.h> just once. Index: eval.c =================================================================== --- eval.c (revision 15883) +++ eval.c (revision 15884) @@ -1069,7 +1069,7 @@ arg = (struct iter_method_arg *)obj; return rb_call(CLASS_OF(arg->obj), arg->obj, arg->mid, - arg->argc, arg->argv, NOEX_PRIVATE); + arg->argc, arg->argv, CALL_FCALL); } VALUE @@ -1088,8 +1088,7 @@ VALUE rb_each(VALUE obj) { - return rb_call(CLASS_OF(obj), obj, rb_intern("each"), 0, 0, - NOEX_PRIVATE); + return rb_call(CLASS_OF(obj), obj, rb_intern("each"), 0, 0, CALL_FCALL); } VALUE @@ -1458,7 +1457,7 @@ argc = RARRAY_LEN(args); /* Assigns LONG, but argc is INT */ argv = ALLOCA_N(VALUE, argc); MEMCPY(argv, RARRAY_PTR(args), VALUE, argc); - return rb_call(CLASS_OF(recv), recv, mid, argc, argv, NOEX_NOSUPER); + return rb_call(CLASS_OF(recv), recv, mid, argc, argv, CALL_FCALL); } static VALUE @@ -1538,21 +1537,19 @@ else { argv = 0; } - return rb_call(CLASS_OF(recv), recv, mid, n, argv, - NOEX_NOSUPER | NOEX_PRIVATE); + return rb_call(CLASS_OF(recv), recv, mid, n, argv, CALL_FCALL); } VALUE rb_funcall2(VALUE recv, ID mid, int argc, const VALUE *argv) { - return rb_call(CLASS_OF(recv), recv, mid, argc, argv, - NOEX_NOSUPER | NOEX_PRIVATE); + return rb_call(CLASS_OF(recv), recv, mid, argc, argv, CALL_FCALL); } VALUE rb_funcall3(VALUE recv, ID mid, int argc, const VALUE *argv) { - return rb_call(CLASS_OF(recv), recv, mid, argc, argv, NOEX_PUBLIC); + return rb_call(CLASS_OF(recv), recv, mid, argc, argv, CALL_PUBLIC); } static VALUE Index: vm.c =================================================================== --- vm.c (revision 15883) +++ vm.c (revision 15884) @@ -501,7 +501,6 @@ VALUE klass; ID id; NODE *body; - int nosuper = 0; rb_control_frame_t *cfp = th->cfp; if (!cfp->iseq) { @@ -530,7 +529,7 @@ rb_bug("vm_call_super: not found"); } - return vm_call0(th, klass, recv, id, id, argc, argv, body, nosuper); + return vm_call0(th, klass, recv, id, id, argc, argv, body, CALL_SUPER); } VALUE -- ML: ruby-changes@q... Info: http://www.atdot.net/~ko1/quickml/