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

ruby-changes:23165

From: nobu <ko1@a...>
Date: Mon, 2 Apr 2012 18:44:20 +0900 (JST)
Subject: [ruby-changes:23165] nobu:r35215 (trunk): check_definition: duplicated code

nobu	2012-04-02 18:44:09 +0900 (Mon, 02 Apr 2012)

  New Revision: 35215

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

  Log:
    check_definition: duplicated code
    
    * vm_method.c (check_definition): moved duplicated code.

  Modified files:
    trunk/vm_method.c

Index: vm_method.c
===================================================================
--- vm_method.c	(revision 35214)
+++ vm_method.c	(revision 35215)
@@ -758,10 +758,12 @@
 #define VISI_CHECK(x,f) (((x)&NOEX_MASK) == (f))
 
 static VALUE
-check_definition(VALUE mod, ID mid, rb_method_flag_t noex)
+check_definition(VALUE mod, VALUE mid, rb_method_flag_t noex)
 {
     const rb_method_entry_t *me;
-    me = rb_method_entry(mod, mid);
+    ID id = rb_check_id(&mid);
+    if (!id) return Qfalse;
+    me = rb_method_entry(mod, id);
     if (me) {
 	if (VISI_CHECK(me->flag, noex))
 	    return Qtrue;
@@ -798,9 +800,7 @@
 static VALUE
 rb_mod_public_method_defined(VALUE mod, VALUE mid)
 {
-    ID id = rb_check_id(&mid);
-    if (!id) return Qfalse;
-    return check_definition(mod, id, NOEX_PUBLIC);
+    return check_definition(mod, mid, NOEX_PUBLIC);
 }
 
 /*
@@ -832,9 +832,7 @@
 static VALUE
 rb_mod_private_method_defined(VALUE mod, VALUE mid)
 {
-    ID id = rb_check_id(&mid);
-    if (!id) return Qfalse;
-    return check_definition(mod, id, NOEX_PRIVATE);
+    return check_definition(mod, mid, NOEX_PRIVATE);
 }
 
 /*
@@ -866,9 +864,7 @@
 static VALUE
 rb_mod_protected_method_defined(VALUE mod, VALUE mid)
 {
-    ID id = rb_check_id(&mid);
-    if (!id) return Qfalse;
-    return check_definition(mod, id, NOEX_PROTECTED);
+    return check_definition(mod, mid, NOEX_PROTECTED);
 }
 
 int

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

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