From 3c44c190b65c8932f02c6b416385d6f5799fa775 Mon Sep 17 00:00:00 2001 From: Nicola Pero Date: Sat, 16 Oct 2010 00:04:37 +0000 Subject: [PATCH] In libobjc/: 2010-10-16 Nicola Pero In libobjc/: 2010-10-16 Nicola Pero * objc/runtime.h (class_getIvarLayout): New. (class_getWeakIvarLayout): New. (class_setIvarLayout): New. (class_setWeakIvarLayout): New. * ivars.c (class_getIvarLayout): New. (class_getWeakIvarLayout): New. (class_setIvarLayout): New. (class_setWeakIvarLayout): New. From-SVN: r165533 --- libobjc/ChangeLog | 11 +++++++++++ libobjc/ivars.c | 26 ++++++++++++++++++++++++++ libobjc/objc/runtime.h | 22 ++++++++++++++++++++++ 3 files changed, 59 insertions(+) diff --git a/libobjc/ChangeLog b/libobjc/ChangeLog index 383d02f621c7..569b6289515a 100644 --- a/libobjc/ChangeLog +++ b/libobjc/ChangeLog @@ -1,3 +1,14 @@ +2010-10-16 Nicola Pero + + * objc/runtime.h (class_getIvarLayout): New. + (class_getWeakIvarLayout): New. + (class_setIvarLayout): New. + (class_setWeakIvarLayout): New. + * ivars.c (class_getIvarLayout): New. + (class_getWeakIvarLayout): New. + (class_setIvarLayout): New. + (class_setWeakIvarLayout): New. + 2010-10-15 Nicola Pero * objc/runtime.h (class_copyPropertyList): New. diff --git a/libobjc/ivars.c b/libobjc/ivars.c index b1e261bb8cc6..827243a6c716 100644 --- a/libobjc/ivars.c +++ b/libobjc/ivars.c @@ -281,3 +281,29 @@ class_copyPropertyList (Class class_ __attribute__ ((__unused__)), return NULL; } + +const char * +class_getIvarLayout (Class class_ __attribute__ ((__unused__))) +{ + return NULL; +} + +const char * +class_getWeakIvarLayout (Class class_ __attribute__ ((__unused__))) +{ + return NULL; +} + +void +class_setIvarLayout (Class class_ __attribute__ ((__unused__)), + const char *layout __attribute__ ((__unused__))) +{ + return; +} + +void +class_setWeakIvarLayout (Class class_ __attribute__ ((__unused__)), + const char *layout __attribute__ ((__unused__))) +{ + return; +} diff --git a/libobjc/objc/runtime.h b/libobjc/objc/runtime.h index 27ecabf8850a..0bbd7e9524e6 100644 --- a/libobjc/objc/runtime.h +++ b/libobjc/objc/runtime.h @@ -336,6 +336,28 @@ objc_EXPORT Property class_getProperty (Class class_, const char *propertyName); objc_EXPORT Property * class_copyPropertyList (Class class_, unsigned int *numberOfReturnedProperties); +/* Return the ivar layout for class 'class_'. + + At the moment this function always returns NULL. */ +objc_EXPORT const char * class_getIvarLayout (Class class_); + +/* Return the weak ivar layout for class 'class_'. + + At the moment this function always returns NULL. */ +objc_EXPORT const char * class_getWeakIvarLayout (Class class_); + +/* Set the ivar layout for class 'class_'. + + At the moment, this function does nothing. */ +objc_EXPORT void class_setIvarLayout (Class class_, const char *layout); + +/* Set the weak ivar layout for class 'class_'. + + At the moment, this function does nothing. With the GNU runtime, + you should use class_ivar_set_gcinvisible () to hide variables from + the Garbage Collector. */ +objc_EXPORT void class_setWeakIvarLayout (Class class_, const char *layout); + /** Implementation: the following functions are in class.c. */