In libobjc/: 2010-12-15 Nicola Pero <nicola.pero@meta-innovation.com>

In libobjc/:
2010-12-15  Nicola Pero  <nicola.pero@meta-innovation.com>

	* ivars.c (class_addIvar): Use the 'size' argument instead of
	trying to calculate it using objc_sizeof_type().
	* objc/runtime.h (class_addIvar): Updated comments.

From-SVN: r167837
This commit is contained in:
Nicola Pero 2010-12-15 01:35:20 +00:00 committed by Nicola Pero
parent 662563121c
commit 3db1a28cce
3 changed files with 11 additions and 6 deletions

View File

@ -1,3 +1,9 @@
2010-12-15 Nicola Pero <nicola.pero@meta-innovation.com>
* ivars.c (class_addIvar): Use the 'size' argument instead of
trying to calculate it using objc_sizeof_type().
* objc/runtime.h (class_addIvar): Updated comments.
2010-12-15 Nicola Pero <nicola.pero@meta-innovation.com> 2010-12-15 Nicola Pero <nicola.pero@meta-innovation.com>
* sendmsg.c: Reindented some code and tidied up comments. No * sendmsg.c: Reindented some code and tidied up comments. No

View File

@ -296,7 +296,7 @@ class_addIvar (Class class_, const char * ivar_name, size_t size,
else else
ivar->ivar_offset = class_->instance_size - misalignment + alignment; ivar->ivar_offset = class_->instance_size - misalignment + alignment;
class_->instance_size = ivar->ivar_offset + objc_sizeof_type (ivar->ivar_type); class_->instance_size = ivar->ivar_offset + size;
} }
return YES; return YES;

View File

@ -319,11 +319,10 @@ objc_EXPORT Ivar * class_copyIvarList (Class class_, unsigned int *numberOfRetur
instance variables to classes already registered with the runtime. instance variables to classes already registered with the runtime.
'size' is the size of the instance variable, 'alignment' the 'size' is the size of the instance variable, 'alignment' the
alignment, and 'type' the type encoding of the variable type. You alignment, and 'type' the type encoding of the variable type. You
can use objc_sizeof_type() (or sizeof()), objc_alignof_type() (or can use sizeof(), __alignof__() and @encode() to determine the
__alignof__()) and @encode() to determine the right 'size', right 'size', 'alignment' and 'type' for your instance variable.
'alignment' and 'type' for your instance variable. For example, to For example, to add an instance variable name "my_variable" and of
add an instance variable name "my_variable" and of type 'id', you type 'id', you can use:
can use:
class_addIvar (class, "my_variable", sizeof (id), __alignof__ (id), class_addIvar (class, "my_variable", sizeof (id), __alignof__ (id),
@encode (id)); @encode (id));