diff options
| author | matz <matz@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2006-07-28 01:43:10 +0000 |
|---|---|---|
| committer | matz <matz@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2006-07-28 01:43:10 +0000 |
| commit | 47487adeffa177ba52a5d72332c207d01220eec8 (patch) | |
| tree | 49524495a69a7533d2dae05ff2a9b7b562fec7a3 /eval.c | |
| parent | 75e28da68783295715fd2bcdc30103a7d3e5c0fa (diff) | |
| download | ruby-47487adeffa177ba52a5d72332c207d01220eec8.tar.gz ruby-47487adeffa177ba52a5d72332c207d01220eec8.tar.xz ruby-47487adeffa177ba52a5d72332c207d01220eec8.zip | |
* eval.c (rb_call): a bug in method cache look-up.
http://www.rubyist.net/~matz/20060720.html#c04
git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@10633 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'eval.c')
| -rw-r--r-- | eval.c | 4 |
1 files changed, 2 insertions, 2 deletions
@@ -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); |
