ObjFW  Check-in [9dfe462848]

Overview
Comment:Improve selector not found message.
Downloads: Tarball | ZIP archive | SQL archive
Timelines: family | ancestors | descendants | both | trunk
Files: files | file ages | folders
SHA3-256: 9dfe4628482f249ff02ce65e790b57e5771d233bcc91c3d94046b581c1b98913
User & Date: js on 2012-09-06 19:13:50
Original User & Date: js on 2012-09-06 19:13:51
Other Links: manifest | tags
Context
2012-09-06
19:13
Add objc_{construct,destruct}Instance(). check-in: 20c584252c user: js tags: trunk
19:13
Improve selector not found message. check-in: 9dfe462848 user: js tags: trunk
19:13
OFIntrospection: Remove property introspection. check-in: 28cc9a516e user: js tags: trunk
Changes

Modified src/runtime/lookup.m from [ef50fd350e] to [aeac5b2dcb].

24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
#import "macros.h"

IMP (*objc_forward_handler)(id, SEL) = NULL;

IMP
objc_not_found_handler(id obj, SEL sel)
{
	if (!(object_getClass(obj)->info & OBJC_CLASS_INFO_INITIALIZED)) {
		BOOL is_class =
		    object_getClass(obj)->info & OBJC_CLASS_INFO_METACLASS;
		Class cls = (is_class ? (Class)obj : object_getClass(obj));

		objc_initialize_class(cls);

		if (!(cls->info & OBJC_CLASS_INFO_SETUP)) {
			if (is_class)
				return objc_msg_lookup(nil, sel);







|
|
|







24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
#import "macros.h"

IMP (*objc_forward_handler)(id, SEL) = NULL;

IMP
objc_not_found_handler(id obj, SEL sel)
{
	BOOL is_class = object_getClass(obj)->info & OBJC_CLASS_INFO_METACLASS;

	if (!(object_getClass(obj)->info & OBJC_CLASS_INFO_INITIALIZED)) {
		Class cls = (is_class ? (Class)obj : object_getClass(obj));

		objc_initialize_class(cls);

		if (!(cls->info & OBJC_CLASS_INFO_SETUP)) {
			if (is_class)
				return objc_msg_lookup(nil, sel);
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
		 */
		return objc_msg_lookup(obj, sel);
	}

	if (objc_forward_handler != NULL)
		return objc_forward_handler(obj, sel);

	OBJC_ERROR("Selector %s is not implemented for class %s!",
	    sel_getName(sel), object_getClassName(obj));
}

BOOL
class_respondsToSelector(Class cls, SEL sel)
{
	if (cls == Nil)
		return NO;







|
|







51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
		 */
		return objc_msg_lookup(obj, sel);
	}

	if (objc_forward_handler != NULL)
		return objc_forward_handler(obj, sel);

	OBJC_ERROR("Selector %c[%s] is not implemented for class %s!",
	    (is_class ? '+' : '-'), sel_getName(sel), object_getClassName(obj));
}

BOOL
class_respondsToSelector(Class cls, SEL sel)
{
	if (cls == Nil)
		return NO;