diff --git a/ChangeLog b/ChangeLog index 1c9c20a1b5..548e0a24f6 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,4 +1,7 @@ -Tue Sep 29 13:37:50 2009 Nobuyoshi Nakada +Tue Sep 29 13:48:58 2009 Nobuyoshi Nakada + + * vm_method.c (rb_method_definition_eq): non-null definition is + not equal to null definition. * vm_method.c (rb_add_method_def): nothing to do if old method had same definition. [ruby-dev:39397] diff --git a/vm_method.c b/vm_method.c index 434e8424cc..808c64c47e 100644 --- a/vm_method.c +++ b/vm_method.c @@ -799,9 +799,8 @@ rb_method_entry_eq(const rb_method_entry_t *m1, const rb_method_entry_t *m2) static int rb_method_definition_eq(const rb_method_definition_t *d1, const rb_method_definition_t *d2) { - if (!d1) { - return !d2; - } + if (d1 == d2) return 1; + if (!d1 || !d2) return 0; if (d1->type != d2->type) { return 0; }