diff --git a/ChangeLog b/ChangeLog index 8c028f81e6..7c8a8c8cdd 100644 --- a/ChangeLog +++ b/ChangeLog @@ -7,6 +7,8 @@ Thu Aug 28 20:22:49 2008 Yukihiro Matsumoto * object.c (convert_type): call less rb_intern() less frequently by using cache structure. + * vm_method.c (rb_method_node): fail earlier if no method found. + Thu Aug 28 19:04:50 2008 NAKAMURA Usaku * bootstraptest/test_io.rb: no need to create real file. diff --git a/vm_method.c b/vm_method.c index 0254741b8a..b0f69afd04 100644 --- a/vm_method.c +++ b/vm_method.c @@ -292,8 +292,9 @@ rb_method_node(VALUE klass, ID id) struct cache_entry *ent; ent = cache + EXPR1(klass, id); - if (ent->mid == id && ent->klass == klass && ent->method) { - return ent->method; + if (ent->mid == id && ent->klass == klass) { + if (ent->method) return ent->method; + return 0; } return rb_get_method_body(klass, id, 0);