diff options
author | yugui <yugui@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2009-08-29 11:42:53 +0000 |
---|---|---|
committer | yugui <yugui@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2009-08-29 11:42:53 +0000 |
commit | 3c65e0262b6b14b0a6dc901128df4c45bd547c2f (patch) | |
tree | 118775acce2347c7a45a29af979bb0c928be6d13 | |
parent | be41711465807d07521d5f71ffdfee18dcab33b5 (diff) | |
download | ruby-3c65e0262b6b14b0a6dc901128df4c45bd547c2f.tar.gz |
* 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
-rw-r--r-- | ChangeLog | 7 | ||||
-rw-r--r-- | method.h | 2 | ||||
-rw-r--r-- | vm_eval.c | 2 |
3 files changed, 10 insertions, 1 deletions
@@ -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] @@ -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); @@ -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 { |