--- gcc/objc/Object.m 2018/04/24 18:10:17 1.1.1.1 +++ gcc/objc/Object.m 2018/04/24 18:13:41 1.1.1.2 @@ -116,6 +116,18 @@ extern int errno; return self==anObject; } +- (int)compare:anotherObject; +{ + if ([self isEqual:anotherObject]) + return 0; + // Ordering objects by their address is pretty useless, + // so subclasses should override this is some useful way. + else if (self > anotherObject) + return 1; + else + return -1; +} + - (BOOL)isMetaClass { return NO; @@ -255,7 +267,7 @@ extern int errno; - performv:(SEL)aSel :(arglist_t)argFrame { - return objc_msg_sendv(self, aSel, method_get_argsize(0), argFrame); + return objc_msg_sendv(self, aSel, argFrame); } + poseAs:(Class*)aClassObject @@ -287,6 +299,12 @@ extern int errno; return [self error:"method %s not implemented", sel_get_name(aSel)]; } +- shouldNotImplement:(SEL)aSel +{ + return [self error:"%s should not implement %s", + object_get_class_name(self), sel_get_name(aSel)]; +} + - doesNotRecognize:(SEL)aSel { return [self error:"%s does not recognize %s",