* eval.c (rb_call): a bug in method cache look-up.

http://www.rubyist.net/~matz/20060720.html#c04


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@10633 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
matz 2006-07-28 01:43:10 +00:00
parent ae832cfa66
commit 94f9fc2b6e
2 changed files with 7 additions and 2 deletions

View File

@ -1,3 +1,8 @@
Fri Jul 28 10:41:35 2006 Yukihiro Matsumoto <matz@ruby-lang.org>
* eval.c (rb_call): a bug in method cache look-up.
http://www.rubyist.net/~matz/20060720.html#c04
Fri Jul 28 10:19:28 2006 Yukihiro Matsumoto <matz@ruby-lang.org>
* sprintf.c (rb_f_sprintf): documentation update patch from Jacob

4
eval.c
View File

@ -5926,13 +5926,13 @@ rb_call(VALUE klass, VALUE recv, ID mid,
ent = NULL;
}
}
if (ent) {
if (!ent) {
ent = cache[LOOKUP_NORMAL] + EXPR1(klass, mid);
if (ent->mid != mid || ent->klass != klass) {
ent = NULL;
}
}
if (ent) {
if (!ent) {
if (!ent->method)
return method_missing(recv, mid, argc, argv, block,
scope==CALLING_VCALL?CSTAT_VCALL:0);