summaryrefslogtreecommitdiff
path: root/Objective-C/libobjcl.h
diff options
context:
space:
mode:
Diffstat (limited to 'Objective-C/libobjcl.h')
-rw-r--r--Objective-C/libobjcl.h27
1 files changed, 27 insertions, 0 deletions
diff --git a/Objective-C/libobjcl.h b/Objective-C/libobjcl.h
index 968cf14..09b08ab 100644
--- a/Objective-C/libobjcl.h
+++ b/Objective-C/libobjcl.h
@@ -22,6 +22,10 @@
#include "../config.h"
+#import "PyObjC/pyobjc.h"
+#import "PyObjC/objc_support.h"
+#import "PyObjC/objc-runtime-compat.h"
+
#ifdef USE_LIBFFI
#ifdef HAVE_FFI_H
#include <ffi.h>
@@ -33,6 +37,12 @@
#endif
#endif
+#ifdef __NEXT_RUNTIME__
+typedef Ivar IVAR_T;
+#else
+typedef struct objc_ivar *IVAR_T;
+#endif
+
extern NSException *objcl_oom_exception;
@@ -118,3 +128,20 @@ objcl_sizeof_return_type (const char *typespec);
long
objcl_alignof_type (const char *typespec);
+
+void
+objcl_set_slot_value (id obj, const char *ivar_name, void *value);
+
+void *
+objcl_slot_value (id obj, const char *ivar_name);
+
+/* The following function returns a freshly consed array that the caller
+ must deallocate. */
+IVAR_T *
+objcl_class_direct_slots (Class class, unsigned int *count, unsigned int *element_size);
+
+const char *
+objcl_slot_name (IVAR_T ivar);
+
+const char *
+objcl_slot_type (IVAR_T ivar);