static id (*$objc_getAssociatedObject)(id object, void *key);
static void (*$objc_removeAssociatedObjects)(id object);
+struct BlockLiteral {
+ Class isa;
+ int flags;
+ int reserved;
+ void (*invoke)(void *, ...);
+ void *descriptor;
+};
+
struct BlockDescriptor1 {
unsigned long int reserved;
unsigned long int size;
};
struct BlockDescriptor2 {
- void (*copy_helper)(void *dst, void *src);
- void (*dispose_helper)(void *src);
+ void (*copy_helper)(BlockLiteral *dst, BlockLiteral *src);
+ void (*dispose_helper)(BlockLiteral *src);
};
struct BlockDescriptor3 {
const char *layout;
};
-struct BlockLiteral {
- Class isa;
- int flags;
- int reserved;
- void (*invoke)(void *, ...);
- void *descriptor;
-};
-
enum {
BLOCK_DEALLOCATING = 0x0001,
BLOCK_REFCOUNT_MASK = 0xfffe,