diff options
author | Nicola Pero <nicola.pero@meta-innovation.com> | 2010-10-12 18:43:54 +0000 |
---|---|---|
committer | Nicola Pero <nicola@gcc.gnu.org> | 2010-10-12 18:43:54 +0000 |
commit | be05b0f5991ef9d9cd7b99f2f8e042a24e5336b0 (patch) | |
tree | b4d41623d7f15f6d47b2a7f3c02ac077462df0f9 /libobjc/ivars.c | |
parent | ce9555cb8273fc011d81d7bb2bb54da020b95b16 (diff) | |
download | gcc-be05b0f5991ef9d9cd7b99f2f8e042a24e5336b0.zip gcc-be05b0f5991ef9d9cd7b99f2f8e042a24e5336b0.tar.gz gcc-be05b0f5991ef9d9cd7b99f2f8e042a24e5336b0.tar.bz2 |
In libobjc/: 2010-10-12 Nicola Pero <nicola.pero@meta-innovation.com>
In libobjc/:
2010-10-12 Nicola Pero <nicola.pero@meta-innovation.com>
* class.c: Include objc/runtime.h and objc-private/module-abi-8.h
instead of objc/objc-api.h.
(objc_get_unknown_class_handler): Do not define.
(class_isMetaClass): New.
(class_getSuperclass): New.
(class_getVersion): New.
(class_setVersion): New.
(class_getInstanceSize): New.
* exceptions.c: Include objc/runtime.h instead of objc/objc-api.h.
(is_kind_of_exception_matcher): Use objc_getSuperclass instead of
objc_get_super_class.
(get_ttype_entry): Use objc_getRequiredClass instead of
objc_get_class.
* ivars.c (class_getClassVariable): New.
* objects.c: Include objc/runtime.h, objc/thr.h and
objc-private/module-abi-8.h instead of objc/objc-api.h
* objc/runtime.h (class_getClassVariable): New.
(class_isMetaClass): New.
(class_getSuperclass): New.
(class_getVersion): New.
(class_setVersion): New.
(class_getInstanceSize): New.
* objc-private/module-abi-8.h (HOST_BITS_PER_LONG): New (from
objc/objc-api.h)
(__CLS_INFO): Same.
(__CLS_ISINFO): Same.
(__CLS_SETINFO): Same.
(CLS_ISMETA): Same.
(CLS_ISCLASS): Same.
(CLS_ISRESOLV): Same.
(CLS_SETRESOLV): Same.
(CLS_ISINITIALIZED): Same.
(CLS_SETINITIALIZED): Same.
(CLS_GETNUMBER): Same.
(CLS_SETNUMBER): Same.
From-SVN: r165392
Diffstat (limited to 'libobjc/ivars.c')
-rw-r--r-- | libobjc/ivars.c | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/libobjc/ivars.c b/libobjc/ivars.c index 061fa21..52b71af 100644 --- a/libobjc/ivars.c +++ b/libobjc/ivars.c @@ -60,6 +60,25 @@ class_getInstanceVariable (Class class_, const char *name) return NULL; } +struct objc_ivar * +class_getClassVariable (Class class_, const char *name) +{ + if (class_ == Nil) + return NULL; + + /* Logically, since a class is an instance of its meta-class, and + since its class methods are the instance methods of the + meta-class, class variables should be instance variables of the + meta-class. That is different from the normal use of having + 'static' variables in the class implementation file, because + every class would have its own variables. + + Anyway, it is all speculative at this stage, but if we get class + variables in Objective-C, it is conceivable that this + implementation should work. */ + return class_getInstanceVariable (class_->class_pointer, name); +} + void * object_getIndexedIvars (id object) { |