mirror of
git://gcc.gnu.org/git/gcc.git
synced 2025-03-24 12:31:25 +08:00
In libobjc/: 2010-10-09 Nicola Pero <nicola.pero@meta-innovation.com>
In libobjc/: 2010-10-09 Nicola Pero <nicola.pero@meta-innovation.com> * objc/objc-api.h (struct objc_super, Super, Super_t, objc_msg_lookup_super, objc_msg_sendv, objc_msg_forward, objc_msg_forward2): Declarations moved to objc/message.h. Include message.h here. * objc/message.h: Added such declarations; updated comments. From-SVN: r165236
This commit is contained in:
parent
5074d72c59
commit
6176c2a993
libobjc
@ -1,3 +1,11 @@
|
||||
2010-10-09 Nicola Pero <nicola.pero@meta-innovation.com>
|
||||
|
||||
* objc/objc-api.h (struct objc_super, Super, Super_t,
|
||||
objc_msg_lookup_super, objc_msg_sendv, objc_msg_forward,
|
||||
objc_msg_forward2): Declarations moved to objc/message.h. Include
|
||||
message.h here.
|
||||
* objc/message.h: Added such declarations; updated comments.
|
||||
|
||||
2010-10-06 Nicola Pero <nicola.pero@meta-innovation.com>
|
||||
|
||||
Implemented fast enumeration for Objective-C.
|
||||
|
@ -33,7 +33,16 @@ extern "C" {
|
||||
#include "objc.h"
|
||||
#include "objc-decls.h"
|
||||
|
||||
/* This file includes declarations of the messaging functions and types. */
|
||||
/* This file includes declarations of the messaging functions and
|
||||
types.
|
||||
*/
|
||||
|
||||
/* Compatibility note: the messaging function is one area where the
|
||||
GNU runtime and the Apple/NeXT runtime differ significantly. If
|
||||
you can, it is recommended that you use higher-level facilities
|
||||
(provided by a Foundation library such as GNUstep Base) to perform
|
||||
forwarding or other advanced messaging tricks.
|
||||
*/
|
||||
|
||||
typedef void* retval_t; /* return value */
|
||||
typedef void(*apply_t)(void); /* function pointer */
|
||||
@ -44,7 +53,37 @@ typedef union arglist {
|
||||
|
||||
objc_EXPORT IMP objc_msg_lookup(id receiver, SEL op);
|
||||
|
||||
/* TODO: Add the remaining messaging declarations from objc-api.h. */
|
||||
/*
|
||||
* Structure used when a message is send to a class's super class.
|
||||
* The compiler generates one of these structures and passes it to
|
||||
* objc_msg_lookup_super.
|
||||
*/
|
||||
typedef struct objc_super {
|
||||
id self; /* Id of the object sending the message. */
|
||||
#ifdef __cplusplus
|
||||
/* The new version of the API will always use 'super_class'. */
|
||||
Class super_class;
|
||||
#else
|
||||
Class class; /* Object's super class. */
|
||||
#endif
|
||||
} Super, *Super_t;
|
||||
|
||||
objc_EXPORT IMP objc_msg_lookup_super(Super_t super, SEL sel);
|
||||
|
||||
objc_EXPORT retval_t objc_msg_sendv(id, SEL, arglist_t);
|
||||
|
||||
/*
|
||||
* Hooks for method forwarding. This makes it easy to substitute a
|
||||
* library, such as ffcall, that implements closures, thereby avoiding
|
||||
* gcc's __builtin_apply problems. __objc_msg_forward2's result will
|
||||
* be preferred over that of __objc_msg_forward if both are set and
|
||||
* return non-NULL.
|
||||
*
|
||||
* TODO: The API should define objc_set_msg_forward_handler () or
|
||||
* similar instead of these hooks.
|
||||
*/
|
||||
objc_EXPORT IMP (*__objc_msg_forward)(SEL);
|
||||
objc_EXPORT IMP (*__objc_msg_forward2)(id, SEL);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
|
@ -289,26 +289,12 @@ typedef struct objc_category {
|
||||
conformed to */
|
||||
} Category, *Category_t;
|
||||
|
||||
/*
|
||||
** Structure used when a message is send to a class's super class. The
|
||||
** compiler generates one of these structures and passes it to
|
||||
** objc_msg_super.
|
||||
*/
|
||||
typedef struct objc_super {
|
||||
id self; /* Id of the object sending
|
||||
the message. */
|
||||
#ifdef __cplusplus
|
||||
Class super_class;
|
||||
#else
|
||||
Class class; /* Object's super class. */
|
||||
#endif
|
||||
} Super, *Super_t;
|
||||
|
||||
objc_EXPORT IMP objc_msg_lookup_super(Super_t super, SEL sel);
|
||||
|
||||
objc_EXPORT retval_t objc_msg_sendv(id, SEL, arglist_t);
|
||||
|
||||
|
||||
/* We include message.h for compatibility with the old objc-api.h
|
||||
which included the declarations currently in message.h. The
|
||||
Apple/NeXT runtime does not do this and only include message.h in
|
||||
objc-runtime.h. It does not matter that much since most of the
|
||||
definitions in message.h are runtime-specific. */
|
||||
#include "message.h"
|
||||
|
||||
/*
|
||||
** This is a hook which is called by objc_lookup_class and
|
||||
@ -359,16 +345,6 @@ objc_free(void *mem);
|
||||
#include "deprecated/objc_valloc.h"
|
||||
#include "deprecated/objc_malloc.h"
|
||||
|
||||
/*
|
||||
** Hooks for method forwarding. This makes it easy to substitute a
|
||||
** library, such as ffcall, that implements closures, thereby avoiding
|
||||
** gcc's __builtin_apply problems. __objc_msg_forward2's result will
|
||||
** be preferred over that of __objc_msg_forward if both are set and
|
||||
** return non-NULL.
|
||||
*/
|
||||
objc_EXPORT IMP (*__objc_msg_forward)(SEL);
|
||||
objc_EXPORT IMP (*__objc_msg_forward2)(id, SEL);
|
||||
|
||||
#include "deprecated/objc_unexpected_exception.h"
|
||||
|
||||
objc_EXPORT Method_t class_get_class_method(MetaClass _class, SEL aSel);
|
||||
|
Loading…
x
Reference in New Issue
Block a user