From 3c65e0262b6b14b0a6dc901128df4c45bd547c2f Mon Sep 17 00:00:00 2001 From: yugui Date: Sat, 29 Aug 2009 11:42:53 +0000 Subject: [PATCH] * 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: svn+ssh://ci.ruby-lang.org/ruby/trunk@24702 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- ChangeLog | 7 +++++++ method.h | 2 ++ vm_eval.c | 2 +- 3 files changed, 10 insertions(+), 1 deletion(-) diff --git a/ChangeLog b/ChangeLog index 2b838883a76205..2d02e958345d7c 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,10 @@ +Sat Aug 29 20:40:02 2009 Yuki Sonoda (Yugui) + + * 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 * lib/tmpdir.rb (Dir.mktmpdir): rolled back r24699. [ruby-dev:39193] diff --git a/method.h b/method.h index e6d4fab8b339f9..8090b6354f273f 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 801070bed6810e..cad6de449468ac 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 {