From d515deb4f36fb5a320ba9ae00709146cff664f84 Mon Sep 17 00:00:00 2001 From: shyouhei Date: Mon, 14 Dec 2009 02:55:02 +0000 Subject: merge revision(s) 25890: * eval.c (rb_method_missing): adjusted format and argument number. * eval.c (rb_call): fixed for super in cached method. [ruby-dev:39757] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8_7@26088 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- ChangeLog | 8 ++++++++ eval.c | 5 +++-- version.h | 2 +- 3 files changed, 12 insertions(+), 3 deletions(-) diff --git a/ChangeLog b/ChangeLog index 22ce5b29fa..5829195977 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,11 @@ +Mon Dec 14 11:47:31 2009 Nobuyoshi Nakada + + * eval.c (rb_method_missing): adjusted format and argument number. + + * eval.c (rb_call): fixed for super in cached method. + [ruby-dev:39757] +n + Mon Dec 14 11:40:35 2009 Nobuyoshi Nakada * hash.c (ruby_setenv): get rid of crash in Solaris 8 and 10. diff --git a/eval.c b/eval.c index c11b96fe37..ab7dbd0b4f 100644 --- a/eval.c +++ b/eval.c @@ -5699,7 +5699,7 @@ rb_method_missing(argc, argv, obj) exc = rb_eNameError; } else if (last_call_status & CSTAT_SUPER) { - format = "super: no superclass method `%s'"; + format = "super: no superclass method `%s' for %s"; } if (!format) { format = "undefined method `%s' for %s"; @@ -6145,13 +6145,14 @@ rb_call(klass, recv, mid, argc, argv, scope, self) ent = cache + EXPR1(klass, mid); if (ent->mid == mid && ent->klass == klass) { if (!ent->method) - return method_missing(recv, mid, argc, argv, scope==2?CSTAT_VCALL:0); + goto nomethod; klass = ent->origin; id = ent->mid0; noex = ent->noex; body = ent->method; } else if ((body = rb_get_method_body(&klass, &id, &noex)) == 0) { + nomethod: if (scope == 3) { return method_missing(recv, mid, argc, argv, CSTAT_SUPER); } diff --git a/version.h b/version.h index 09ee69e604..ad12db4e23 100644 --- a/version.h +++ b/version.h @@ -2,7 +2,7 @@ #define RUBY_RELEASE_DATE "2009-12-14" #define RUBY_VERSION_CODE 187 #define RUBY_RELEASE_CODE 20091214 -#define RUBY_PATCHLEVEL 232 +#define RUBY_PATCHLEVEL 233 #define RUBY_VERSION_MAJOR 1 #define RUBY_VERSION_MINOR 8 -- cgit v1.2.3