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

ruby-changes:7020

From: ko1 <ko1@a...>
Date: Tue, 12 Aug 2008 19:02:29 +0900 (JST)
Subject: [ruby-changes:7020] Ruby:r18538 (trunk): * vm.c, vm_insnhelper.c (vm_define_method): move

ko1	2008-08-12 18:59:06 +0900 (Tue, 12 Aug 2008)

  New Revision: 18538

  http://svn.ruby-lang.org/cgi-bin/viewvc.cgi?view=rev&revision=18538

  Log:
    * vm.c, vm_insnhelper.c (vm_define_method): move
      function place.

  Modified files:
    trunk/ChangeLog
    trunk/vm.c
    trunk/vm_insnhelper.c

Index: ChangeLog
===================================================================
--- ChangeLog	(revision 18537)
+++ ChangeLog	(revision 18538)
@@ -1,3 +1,8 @@
+Tue Aug 12 18:58:48 2008  Koichi Sasada  <ko1@a...>
+
+	* vm.c, vm_insnhelper.c (vm_define_method): move 
+	  function place.
+
 Tue Aug 12 18:56:52 2008  Nobuyoshi Nakada  <nobu@r...>
 
 	* include/ruby/intern.h (rb_str_new2, rb_tainted_str_new2,
Index: vm.c
===================================================================
--- vm.c	(revision 18537)
+++ vm.c	(revision 18538)
@@ -1655,6 +1655,46 @@
     return Qnil;
 }
 
+static void
+vm_define_method(rb_thread_t *th, VALUE obj, ID id, rb_iseq_t *miseq,
+		 rb_num_t is_singleton, NODE *cref)
+{
+    NODE *newbody;
+    VALUE klass = cref->nd_clss;
+    int noex = cref->nd_visi;
+
+    if (NIL_P(klass)) {
+	rb_raise(rb_eTypeError, "no class/module to add method");
+    }
+
+    if (is_singleton) {
+	if (FIXNUM_P(obj) || SYMBOL_P(obj)) {
+	    rb_raise(rb_eTypeError,
+		     "can't define singleton method \"%s\" for %s",
+		     rb_id2name(id), rb_obj_classname(obj));
+	}
+
+	if (OBJ_FROZEN(obj)) {
+	    rb_error_frozen("object");
+	}
+
+	klass = rb_singleton_class(obj);
+	noex = NOEX_PUBLIC;
+    }
+
+    /* dup */
+    COPY_CREF(miseq->cref_stack, cref);
+    miseq->klass = klass;
+    miseq->defined_method_id = id;
+    newbody = NEW_NODE(RUBY_VM_METHOD_NODE, 0, miseq->self, 0);
+    rb_add_method(klass, id, newbody, noex);
+
+    if (!is_singleton && noex == NOEX_MODFUNC) {
+	rb_add_method(rb_singleton_class(klass), id, newbody, NOEX_PUBLIC);
+    }
+    INC_VM_STATE_VERSION();
+}
+
 static VALUE
 m_core_define_method(VALUE self, VALUE cbase, VALUE sym, VALUE iseqval)
 {
Index: vm_insnhelper.c
===================================================================
--- vm_insnhelper.c	(revision 18537)
+++ vm_insnhelper.c	(revision 18538)
@@ -1061,46 +1061,6 @@
     return klass;
 }
 
-static inline void
-vm_define_method(rb_thread_t *th, VALUE obj, ID id, rb_iseq_t *miseq,
-		 rb_num_t is_singleton, NODE *cref)
-{
-    NODE *newbody;
-    VALUE klass = cref->nd_clss;
-    int noex = cref->nd_visi;
-
-    if (NIL_P(klass)) {
-	rb_raise(rb_eTypeError, "no class/module to add method");
-    }
-
-    if (is_singleton) {
-	if (FIXNUM_P(obj) || SYMBOL_P(obj)) {
-	    rb_raise(rb_eTypeError,
-		     "can't define singleton method \"%s\" for %s",
-		     rb_id2name(id), rb_obj_classname(obj));
-	}
-
-	if (OBJ_FROZEN(obj)) {
-	    rb_error_frozen("object");
-	}
-
-	klass = rb_singleton_class(obj);
-	noex = NOEX_PUBLIC;
-    }
-
-    /* dup */
-    COPY_CREF(miseq->cref_stack, cref);
-    miseq->klass = klass;
-    miseq->defined_method_id = id;
-    newbody = NEW_NODE(RUBY_VM_METHOD_NODE, 0, miseq->self, 0);
-    rb_add_method(klass, id, newbody, noex);
-
-    if (!is_singleton && noex == NOEX_MODFUNC) {
-	rb_add_method(rb_singleton_class(klass), id, newbody, NOEX_PUBLIC);
-    }
-    INC_VM_STATE_VERSION();
-}
-
 static inline NODE *
 vm_method_search(VALUE id, VALUE klass, IC ic)
 {

--
ML: ruby-changes@q...
Info: http://www.atdot.net/~ko1/quickml/

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