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

ruby-changes:23719

From: ko1 <ko1@a...>
Date: Thu, 24 May 2012 15:36:54 +0900 (JST)
Subject: [ruby-changes:23719] ko1:r35770 (trunk): * vm_method.c (rb_method_defined_by): removed.

ko1	2012-05-24 15:36:44 +0900 (Thu, 24 May 2012)

  New Revision: 35770

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

  Log:
    * vm_method.c (rb_method_defined_by): removed.
      nobu pointed out that rb_method_basic_definition_p() is enough
      for last commit.
    * error.c, eval_error.c: change for above.

  Modified files:
    trunk/ChangeLog
    trunk/error.c
    trunk/eval_error.c
    trunk/internal.h
    trunk/vm_method.c

Index: ChangeLog
===================================================================
--- ChangeLog	(revision 35769)
+++ ChangeLog	(revision 35770)
@@ -1,3 +1,11 @@
+Thu May 24 15:33:01 2012  Koichi Sasada  <ko1@a...>
+
+	* vm_method.c (rb_method_defined_by): removed.
+	  nobu pointed out that rb_method_basic_definition_p() is enough
+	  for last commit.
+
+	* error.c, eval_error.c: change for above.
+
 Thu May 24 14:30:13 2012  Koichi Sasada  <ko1@a...>
 
 	* vm.c: add RubyVM::Backtrace object (btobj).
Index: eval_error.c
===================================================================
--- eval_error.c	(revision 35769)
+++ eval_error.c	(revision 35770)
@@ -55,13 +55,15 @@
     return get_backtrace(info);
 }
 
+VALUE rb_exc_set_backtrace(VALUE exc, VALUE bt);
+
 static void
 set_backtrace(VALUE info, VALUE bt)
 {
     ID set_backtrace = rb_intern("set_backtrace");
 
     if (rb_backtrace_p(bt)) {
-	if (rb_method_defined_by(info, set_backtrace, rb_exc_set_backtrace)) {
+	if (rb_method_basic_definition_p(CLASS_OF(info), set_backtrace)) {
 	    rb_exc_set_backtrace(info, bt);
 	    return;
 	}
Index: vm_method.c
===================================================================
--- vm_method.c	(revision 35769)
+++ vm_method.c	(revision 35770)
@@ -1401,19 +1401,3 @@
 	REPLICATE_METHOD(rb_eException, respond_to_missing, NOEX_PUBLIC);
     }
 }
-
-int
-rb_method_defined_by(VALUE obj, ID mid, VALUE (*cfunc)(ANYARGS))
-{
-    rb_method_entry_t *me = search_method(CLASS_OF(obj), mid);
-
-    if (me && me->def &&
-	me->def->type == VM_METHOD_TYPE_CFUNC &&
-	me->def->body.cfunc.func == cfunc) {
-	return 1;
-    }
-    else {
-	return 0;
-    }
-}
-
Index: error.c
===================================================================
--- error.c	(revision 35769)
+++ error.c	(revision 35770)
@@ -717,10 +717,16 @@
  *
  */
 
+static VALUE
+exc_set_backtrace(VALUE exc, VALUE bt)
+{
+    return rb_iv_set(exc, "bt", rb_check_backtrace(bt));
+}
+
 VALUE
 rb_exc_set_backtrace(VALUE exc, VALUE bt)
 {
-    return rb_iv_set(exc, "bt", rb_check_backtrace(bt));
+    return exc_set_backtrace(exc, bt);
 }
 
 static VALUE
@@ -1678,7 +1684,7 @@
     rb_define_method(rb_eException, "message", exc_message, 0);
     rb_define_method(rb_eException, "inspect", exc_inspect, 0);
     rb_define_method(rb_eException, "backtrace", exc_backtrace, 0);
-    rb_define_method(rb_eException, "set_backtrace", rb_exc_set_backtrace, 1);
+    rb_define_method(rb_eException, "set_backtrace", exc_set_backtrace, 1);
 
     rb_eSystemExit  = rb_define_class("SystemExit", rb_eException);
     rb_define_method(rb_eSystemExit, "initialize", exit_initialize, -1);
Index: internal.h
===================================================================
--- internal.h	(revision 35769)
+++ internal.h	(revision 35770)
@@ -83,7 +83,6 @@
 NORETURN(PRINTF_ARGS(void rb_compile_bug(const char*, int, const char*, ...), 3, 4));
 VALUE rb_check_backtrace(VALUE);
 NORETURN(void rb_async_bug_errno(const char *,int));
-VALUE rb_exc_set_backtrace(VALUE exc, VALUE bt);
 
 /* eval_error.c */
 void ruby_error_print(void);

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

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