diff --git a/libobjc/ChangeLog b/libobjc/ChangeLog index 383d02f621c..569b6289515 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 b1e261bb8cc..827243a6c71 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 27ecabf8850..0bbd7e9524e 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. */