summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authoryugui <yugui@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2009-08-29 11:42:53 +0000
committeryugui <yugui@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2009-08-29 11:42:53 +0000
commitee5bc98203d29b60d34866aa8d49d639498b97bf (patch)
tree118775acce2347c7a45a29af979bb0c928be6d13
parent772bc296b41651e766b89265f8d1baa100b15800 (diff)
downloadruby-ee5bc98203d29b60d34866aa8d49d639498b97bf.tar.gz
ruby-ee5bc98203d29b60d34866aa8d49d639498b97bf.tar.xz
ruby-ee5bc98203d29b60d34866aa8d49d639498b97bf.zip
* vm_eval.c (rb_call0): gets rid of checking method cache twice.
* method.h (rb_get_method_entry): added a prototype of the function. (rb_method_entry_without_cache): more friendly name. git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@24702 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
-rw-r--r--ChangeLog7
-rw-r--r--method.h2
-rw-r--r--vm_eval.c2
3 files changed, 10 insertions, 1 deletions
diff --git a/ChangeLog b/ChangeLog
index 2b838883a..2d02e9583 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,10 @@
+Sat Aug 29 20:40:02 2009 Yuki Sonoda (Yugui) <yugui@yugui.jp>
+
+ * vm_eval.c (rb_call0): gets rid of checking method cache twice.
+
+ * method.h (rb_get_method_entry): added a prototype of the function.
+ (rb_method_entry_without_cache): more friendly name.
+
Sat Aug 29 12:16:47 2009 Nobuyoshi Nakada <nobu@ruby-lang.org>
* lib/tmpdir.rb (Dir.mktmpdir): rolled back r24699. [ruby-dev:39193]
diff --git a/method.h b/method.h
index e6d4fab8b..8090b6354 100644
--- a/method.h
+++ b/method.h
@@ -78,6 +78,8 @@ void rb_add_method_cfunc(VALUE klass, ID mid, VALUE (*func)(ANYARGS), int argc,
rb_method_entry_t *rb_add_method(VALUE klass, ID mid, rb_method_type_t type, void *option, rb_method_flag_t noex);
rb_method_entry_t *rb_add_method_me(VALUE klass, ID mid, const rb_method_entry_t *, rb_method_flag_t noex);
rb_method_entry_t *rb_method_entry(VALUE klass, ID id);
+rb_method_entry_t *rb_get_method_entry(VALUE klass, ID id);
+#define rb_method_entry_without_cache(klass, id) rb_get_method_entry((klass), (id))
int rb_method_entry_arity(const rb_method_entry_t *me);
void rb_gc_mark_method_entry(const rb_method_entry_t *me);
void rb_free_method_entry(rb_method_entry_t *me);
diff --git a/vm_eval.c b/vm_eval.c
index 801070bed..cad6de449 100644
--- a/vm_eval.c
+++ b/vm_eval.c
@@ -222,7 +222,7 @@ rb_call0(VALUE recv, ID mid, int argc, const VALUE *argv,
}
klass = me->klass;
}
- else if ((me = rb_method_entry(klass, mid)) != 0 && me->def) {
+ else if ((me = rb_method_entry_without_cache(klass, mid)) != 0 && me->def) {
klass = me->klass;
}
else {