[前][次][番号順一覧][スレッド一覧]

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/

[前][次][番号順一覧][スレッド一覧]