|
|
|
@ -30,6 +30,7 @@ Boston, MA 02111-1307, USA. */
|
|
|
|
#include "objc/objc.h"
|
|
|
|
#include "objc/objc.h"
|
|
|
|
#include "objc/hash.h"
|
|
|
|
#include "objc/hash.h"
|
|
|
|
#include "objc/thr.h"
|
|
|
|
#include "objc/thr.h"
|
|
|
|
|
|
|
|
#include "objc/objc-decls.h"
|
|
|
|
#include <stdio.h>
|
|
|
|
#include <stdio.h>
|
|
|
|
#include <stdarg.h>
|
|
|
|
#include <stdarg.h>
|
|
|
|
|
|
|
|
|
|
|
|
@ -100,7 +101,7 @@ struct objc_method_description
|
|
|
|
extern void objc_error(id object, int code, const char* fmt, ...);
|
|
|
|
extern void objc_error(id object, int code, const char* fmt, ...);
|
|
|
|
extern void objc_verror(id object, int code, const char* fmt, va_list ap);
|
|
|
|
extern void objc_verror(id object, int code, const char* fmt, va_list ap);
|
|
|
|
typedef BOOL (*objc_error_handler)(id, int code, const char *fmt, va_list ap);
|
|
|
|
typedef BOOL (*objc_error_handler)(id, int code, const char *fmt, va_list ap);
|
|
|
|
objc_error_handler objc_set_error_handler(objc_error_handler func);
|
|
|
|
extern objc_error_handler objc_set_error_handler(objc_error_handler func);
|
|
|
|
|
|
|
|
|
|
|
|
/*
|
|
|
|
/*
|
|
|
|
** Error codes
|
|
|
|
** Error codes
|
|
|
|
@ -357,7 +358,7 @@ retval_t objc_msg_sendv(id, SEL, arglist_t);
|
|
|
|
** This may e.g. try to load in the class using dynamic loading.
|
|
|
|
** This may e.g. try to load in the class using dynamic loading.
|
|
|
|
** The function is guaranteed to be passed a non-NULL name string.
|
|
|
|
** The function is guaranteed to be passed a non-NULL name string.
|
|
|
|
*/
|
|
|
|
*/
|
|
|
|
extern Class (*_objc_lookup_class)(const char *name);
|
|
|
|
objc_EXPORT Class (*_objc_lookup_class)(const char *name);
|
|
|
|
|
|
|
|
|
|
|
|
/*
|
|
|
|
/*
|
|
|
|
** This is a hook which is called by __objc_exec_class every time a class
|
|
|
|
** This is a hook which is called by __objc_exec_class every time a class
|
|
|
|
@ -365,14 +366,14 @@ extern Class (*_objc_lookup_class)(const char *name);
|
|
|
|
** dynamic loader determine the classes that have been loaded when
|
|
|
|
** dynamic loader determine the classes that have been loaded when
|
|
|
|
** an object file is dynamically linked in.
|
|
|
|
** an object file is dynamically linked in.
|
|
|
|
*/
|
|
|
|
*/
|
|
|
|
extern void (*_objc_load_callback)(Class class, Category* category);
|
|
|
|
objc_EXPORT void (*_objc_load_callback)(Class class, Category* category);
|
|
|
|
|
|
|
|
|
|
|
|
/*
|
|
|
|
/*
|
|
|
|
** Hook functions for allocating, copying and disposing of instances
|
|
|
|
** Hook functions for allocating, copying and disposing of instances
|
|
|
|
*/
|
|
|
|
*/
|
|
|
|
extern id (*_objc_object_alloc)(Class class);
|
|
|
|
objc_EXPORT id (*_objc_object_alloc)(Class class);
|
|
|
|
extern id (*_objc_object_copy)(id object);
|
|
|
|
objc_EXPORT id (*_objc_object_copy)(id object);
|
|
|
|
extern id (*_objc_object_dispose)(id object);
|
|
|
|
objc_EXPORT id (*_objc_object_dispose)(id object);
|
|
|
|
|
|
|
|
|
|
|
|
/*
|
|
|
|
/*
|
|
|
|
** Standard functions for memory allocation and disposal.
|
|
|
|
** Standard functions for memory allocation and disposal.
|
|
|
|
@ -408,19 +409,19 @@ objc_free(void *mem);
|
|
|
|
** Users should call the normal objc routines above for
|
|
|
|
** Users should call the normal objc routines above for
|
|
|
|
** memory allocation and disposal within their programs.
|
|
|
|
** memory allocation and disposal within their programs.
|
|
|
|
*/
|
|
|
|
*/
|
|
|
|
extern void *(*_objc_malloc)(size_t);
|
|
|
|
objc_EXPORT void *(*_objc_malloc)(size_t);
|
|
|
|
extern void *(*_objc_atomic_malloc)(size_t);
|
|
|
|
objc_EXPORT void *(*_objc_atomic_malloc)(size_t);
|
|
|
|
extern void *(*_objc_valloc)(size_t);
|
|
|
|
objc_EXPORT void *(*_objc_valloc)(size_t);
|
|
|
|
extern void *(*_objc_realloc)(void *, size_t);
|
|
|
|
objc_EXPORT void *(*_objc_realloc)(void *, size_t);
|
|
|
|
extern void *(*_objc_calloc)(size_t, size_t);
|
|
|
|
objc_EXPORT void *(*_objc_calloc)(size_t, size_t);
|
|
|
|
extern void (*_objc_free)(void *);
|
|
|
|
objc_EXPORT void (*_objc_free)(void *);
|
|
|
|
|
|
|
|
|
|
|
|
/*
|
|
|
|
/*
|
|
|
|
** Hook for method forwarding. This makes it easy to substitute a
|
|
|
|
** Hook for method forwarding. This makes it easy to substitute a
|
|
|
|
** library, such as ffcall, that implements closures, thereby avoiding
|
|
|
|
** library, such as ffcall, that implements closures, thereby avoiding
|
|
|
|
** gcc's __builtin_apply problems.
|
|
|
|
** gcc's __builtin_apply problems.
|
|
|
|
*/
|
|
|
|
*/
|
|
|
|
extern IMP (*__objc_msg_forward)(SEL);
|
|
|
|
objc_EXPORT IMP (*__objc_msg_forward)(SEL);
|
|
|
|
|
|
|
|
|
|
|
|
Method_t class_get_class_method(MetaClass class, SEL aSel);
|
|
|
|
Method_t class_get_class_method(MetaClass class, SEL aSel);
|
|
|
|
|
|
|
|
|
|
|
|
|