Revision
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

Diff

Modified: MacRuby/trunk/class.c (599 => 600)


--- 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;
 }