diff options
author | Nicola Pero <nicola.pero@meta-innovation.com> | 2010-12-24 17:00:19 +0000 |
---|---|---|
committer | Nicola Pero <nicola@gcc.gnu.org> | 2010-12-24 17:00:19 +0000 |
commit | 5750872c618185a2f1161d24510ad2be8669338a (patch) | |
tree | ee1e4e206c47305a511d45251f60fad046dd3233 /libobjc/objc | |
parent | e66d38fe0510d448d35968205fdb79a6a1b2f675 (diff) | |
download | gcc-5750872c618185a2f1161d24510ad2be8669338a.zip gcc-5750872c618185a2f1161d24510ad2be8669338a.tar.gz gcc-5750872c618185a2f1161d24510ad2be8669338a.tar.bz2 |
In libobjc/: 2010-12-24 Nicola Pero <nicola.pero@meta-innovation.com>
In libobjc/:
2010-12-24 Nicola Pero <nicola.pero@meta-innovation.com>
* objc/runtime.h (sel_getType): Renamed to sel_getTypeEncoding to
be consistent with method_getTypeEncoding and
ivar_getTypeEncoding.
(sel_copyTypedSelectorList, sel_getTypedSelector): New.
* selector.c (sel_getType): Renamed to sel_getTypeEncoding.
(sel_copyTypedSelectorList, sel_getTypedSelector): New.
(sel_get_type): Updated call to sel_getType.
In gcc/testsuite/:
2010-12-24 Nicola Pero <nicola.pero@meta-innovation.com>
* objc.dg/gnu-api-2-sel.m: Updated for renaming of sel_getType to
sel_getTypeEncoding. Test that sel_getTypeEncoding returns NULL
when called with a NULL argument. Added test for
sel_copyTypedSelectorList and sel_getTypedSelector.
* obj-c++.dg/gnu-api-2-sel.mm: Same changes.
From-SVN: r168229
Diffstat (limited to 'libobjc/objc')
-rw-r--r-- | libobjc/objc/runtime.h | 45 |
1 files changed, 41 insertions, 4 deletions
diff --git a/libobjc/objc/runtime.h b/libobjc/objc/runtime.h index 7ad46dc..18fc872 100644 --- a/libobjc/objc/runtime.h +++ b/libobjc/objc/runtime.h @@ -175,12 +175,13 @@ object_getClass (id object) "<null selector>". */ objc_EXPORT const char *sel_getName (SEL selector); -/* Return the type of a given selector. +/* Return the type of a given selector. Return NULL if selector is + NULL. Compatibility Note: the Apple/NeXT runtime has untyped selectors, so it does not have this function, which is specific to the GNU Runtime. */ -objc_EXPORT const char *sel_getType (SEL selector); +objc_EXPORT const char *sel_getTypeEncoding (SEL selector); /* This is the same as sel_registerName (). Please use sel_registerName () instead. */ @@ -188,11 +189,16 @@ objc_EXPORT SEL sel_getUid (const char *name); /* Register a selector with a given name (but unspecified types). If you know the types, it is better to call sel_registerTypedName(). - If a selector with this name already exists, it is returned. */ + If a selector with this name and no types already exists, it is + returned. Note that this function should really be called + 'objc_registerSelector'. */ objc_EXPORT SEL sel_registerName (const char *name); /* Register a selector with a given name and types. If a selector - with this name and types already exists, it is returned. + with this name and types already exists, it is returned. Note that + this function should really be called 'objc_registerTypedSelector', + and it's called 'sel_registerTypedName' only for consistency with + 'sel_registerName'. Compatibility Note: the Apple/NeXT runtime has untyped selectors, so it does not have this function, which is specific to the GNU @@ -203,6 +209,37 @@ objc_EXPORT SEL sel_registerTypedName (const char *name, const char *type); if not. */ objc_EXPORT BOOL sel_isEqual (SEL first_selector, SEL second_selector); +/* Return all the selectors with the supplied name. In the GNU + runtime, selectors are typed and there may be multiple selectors + with the same name but a different type. The return value of the + function is a pointer to an area, allocated with malloc(), that + contains all the selectors with the supplier name known to the + runtime. The list is terminated by NULL. Optionally, if you pass + a non-NULL 'numberOfReturnedSelectors' pointer, the unsigned int + that it points to will be filled with the number of selectors + returned. + + Compatibility Note: the Apple/NeXT runtime has untyped selectors, + so it does not have this function, which is specific to the GNU + Runtime. */ +objc_EXPORT SEL * sel_copyTypedSelectorList (const char *name, + unsigned int *numberOfReturnedSelectors); + +/* Return a selector with name 'name' and a non-zero type encoding, if + any such selector is registered with the runtime. If there is no + such selector, NULL is returned. + + This is useful if you have the name of the selector, and would + really like to get a selector for it that includes the type + encoding. Unfortunately, if the program contains multiple selector + with the same name but different types, sel_getTypedSelector + returns a random one of them, which may not be the right one. + + Compatibility Note: the Apple/NeXT runtime has untyped selectors, + so it does not have this function, which is specific to the GNU + Runtime. */ +objc_EXPORT SEL sel_getTypedSelector (const char *name); + /** Implementation: the following functions are in objects.c. */ |