Revision: 600 http://trac.macosforge.org/projects/ruby/changeset/600 Author: lsansonetti@apple.com Date: 2008-09-15 18:05:31 -0700 (Mon, 15 Sep 2008) Log Message: ----------- in isEqual: always return false if given obj is NULL Modified Paths: -------------- MacRuby/trunk/class.c Modified: MacRuby/trunk/class.c =================================================================== --- MacRuby/trunk/class.c 2008-09-13 19:55:35 UTC (rev 599) +++ MacRuby/trunk/class.c 2008-09-16 01:05:31 UTC (rev 600) @@ -64,10 +64,15 @@ static BOOL rb_obj_imp_isEqual(void *rcv, SEL sel, void *obj) { - if (*(Class *)rcv == (Class)rb_cFixnum && *(Class *)obj == (Class)rb_cFixnum) { + if (obj == NULL) + return false; + + if (*(Class *)rcv == (Class)rb_cFixnum + && *(Class *)obj == (Class)rb_cFixnum) { /* XXX check if Numeric#== is not overriden */ return RFIXNUM(rcv)->value == RFIXNUM(obj)->value; } + return rb_funcall((VALUE)rcv, idEq, 1, OC2RB(obj)) == Qtrue; }