ObjFW  Check-in [3398436156]

Overview
Comment:Fix -[performSelector:] and friends.
Downloads: Tarball | ZIP archive | SQL archive
Timelines: family | ancestors | descendants | both | trunk
Files: files | file ages | folders
SHA3-256: 33984361564cb27ff9e49f3f694206f01add88f4cadbff68415b29b6302eba2b
User & Date: js on 2011-04-03 17:02:35
Other Links: manifest | tags
Context
2011-04-03
17:04
Fix -[makeObjectsPerformSelector:] and friends. check-in: 9f68bba7cd user: js tags: trunk
17:02
Fix -[performSelector:] and friends. check-in: 3398436156 user: js tags: trunk
10:58
Use a more fitting exception in -[initWithContentsOfFile:]. check-in: 72f2eb445d user: js tags: trunk
Changes

Modified src/OFObject.m from [8f8e235cfd] to [5b4c20a0f2].

481
482
483
484
485
486
487
488
489
490
491
492
493
494
495

496
497
498
499
500
501
502
503
504

505
506
507
508
509
510
511
512
513
514
#else
	return class_getMethodImplementation(isa, selector);
#endif
}

- (id)performSelector: (SEL)selector
{
	id (*imp)() = (id(*)())[self methodForSelector: selector];

	return imp();
}

- (id)performSelector: (SEL)selector
	   withObject: (id)obj
{

	id (*imp)(id) = (id(*)(id))[self methodForSelector: selector];

	return imp(obj);
}

- (id)performSelector: (SEL)selector
	   withObject: (id)obj1
	   withObject: (id)obj2
{

	id (*imp)(id, id) = (id(*)(id, id))[self methodForSelector: selector];

	return imp(obj1, obj2);
}

- (const char*)typeEncodingForSelector: (SEL)selector
{
#if defined(OF_OBJFW_RUNTIME)
	const char *ret;








|

|





>
|

|






>
|

|







481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
#else
	return class_getMethodImplementation(isa, selector);
#endif
}

- (id)performSelector: (SEL)selector
{
	id (*imp)(id, SEL) = (id(*)(id, SEL))[self methodForSelector: selector];

	return imp(self, selector);
}

- (id)performSelector: (SEL)selector
	   withObject: (id)obj
{
	id (*imp)(id, SEL, id) =
	    (id(*)(id, SEL, id))[self methodForSelector: selector];

	return imp(self, selector, obj);
}

- (id)performSelector: (SEL)selector
	   withObject: (id)obj1
	   withObject: (id)obj2
{
	id (*imp)(id, SEL, id, id) =
	    (id(*)(id, SEL, id, id))[self methodForSelector: selector];

	return imp(self, selector, obj1, obj2);
}

- (const char*)typeEncodingForSelector: (SEL)selector
{
#if defined(OF_OBJFW_RUNTIME)
	const char *ret;