From 4771cd4e43475d56a53fe420b25ac13993ed7090 Mon Sep 17 00:00:00 2001 From: theraven Date: Wed, 25 Nov 2009 14:42:52 +0000 Subject: [PATCH] Added selector lookup functions. Implementations by Eric Wasylishen. --- objc/runtime.h | 8 ++++++++ runtime.c | 22 +++++++++++++++++++++- 2 files changed, 29 insertions(+), 1 deletion(-) diff --git a/objc/runtime.h b/objc/runtime.h index 5cfbb41..bd9be4e 100644 --- a/objc/runtime.h +++ b/objc/runtime.h @@ -256,6 +256,14 @@ objc_property_t protocol_getProperty(Protocol *p, const char *name, BOOL protocol_isEqual(Protocol *p, Protocol *other); +const char *sel_getName(SEL sel); + +SEL sel_getUid(const char *selName); + +BOOL sel_isEqual(SEL sel1, SEL sel2); + +SEL sel_registerName(const char *selName); + #else #include "runtime-legacy.h" #endif // __LEGACY_GNU_MODE__ diff --git a/runtime.c b/runtime.c index 9345826..3c9c612 100644 --- a/runtime.c +++ b/runtime.c @@ -112,7 +112,7 @@ static Method class_getInstanceMethodNonrecursive(Class aClass, SEL aSelector) static void objc_updateDtableForClassContainingMethod(Method m) { Class nextClass = Nil; - void *state; + void *state = NULL; SEL sel = method_getName(m); while (Nil != (nextClass = objc_next_class(&state))) { @@ -846,3 +846,23 @@ BOOL protocol_isEqual(Protocol *p, Protocol *other) } return NO; } + +const char *sel_getName(SEL sel) +{ + return sel_get_name(sel); +} + +SEL sel_getUid(const char *selName) +{ + return sel_get_uid(selName); +} + +BOOL sel_isEqual(SEL sel1, SEL sel2) +{ + return sel_eq(sel1, sel2); +} + +SEL sel_registerName(const char *selName) +{ + return sel_register_name(selName); +}