355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
|
{
return class_getMethodImplementation(self, selector);
}
+ (const char*)typeEncodingForInstanceSelector: (SEL)selector
{
#if defined(OF_OBJFW_RUNTIME)
const char *ret;
if ((ret = objc_get_type_encoding(self, selector)) == NULL)
@throw [OFNotImplementedException exceptionWithClass: self
selector: selector];
return ret;
#else
Method m;
const char *ret;
if ((m = class_getInstanceMethod(self, selector)) == NULL ||
(ret = method_getTypeEncoding(m)) == NULL)
@throw [OFNotImplementedException exceptionWithClass: self
selector: selector];
return ret;
#endif
}
+ (OFString*)description
{
return [self className];
}
|
<
<
|
<
<
<
<
<
|
|
<
<
|
|
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
|
{
return class_getMethodImplementation(self, selector);
}
+ (const char*)typeEncodingForInstanceSelector: (SEL)selector
{
#if defined(OF_OBJFW_RUNTIME)
return objc_get_type_encoding(self, selector);
#else
Method m;
if ((m = class_getInstanceMethod(self, selector)) == NULL)
return NULL;
return method_getTypeEncoding(m);
#endif
}
+ (OFString*)description
{
return [self className];
}
|
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
|
objc_autoreleasePoolPop(pool);
}
- (const char*)typeEncodingForSelector: (SEL)selector
{
#if defined(OF_OBJFW_RUNTIME)
const char *ret;
if ((ret = objc_get_type_encoding(object_getClass(self),
selector)) == NULL)
@throw [OFNotImplementedException
exceptionWithClass: [self class]
selector: selector];
return ret;
#else
Method m;
const char *ret;
if ((m = class_getInstanceMethod(object_getClass(self),
selector)) == NULL || (ret = method_getTypeEncoding(m)) == NULL)
@throw [OFNotImplementedException
exceptionWithClass: [self class]
selector: selector];
return ret;
#endif
}
- (BOOL)isEqual: (id)object
{
/* Classes containing data should reimplement this! */
return (self == object);
|
<
<
|
<
<
<
<
<
<
<
|
<
<
<
>
|
|
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
|
objc_autoreleasePoolPop(pool);
}
- (const char*)typeEncodingForSelector: (SEL)selector
{
#if defined(OF_OBJFW_RUNTIME)
return objc_get_type_encoding(object_getClass(self), selector);
#else
Method m;
if ((m = class_getInstanceMethod(object_getClass(self),
selector)) == NULL)
return NULL;
return method_getTypeEncoding(m);
#endif
}
- (BOOL)isEqual: (id)object
{
/* Classes containing data should reimplement this! */
return (self == object);
|