Correctly calculate the offset when adding ivars.

main
theraven 16 years ago
parent 9e64fb7828
commit e1562b28d4

@ -94,8 +94,9 @@ BOOL class_addIvar(Class cls, const char *name, size_t size, uint8_t alignment,
if (offset << alignment != cls->instance_size)
{
offset = (offset+ 1) << alignment;
offset++;
}
offset <<= alignment;
ivar->offset = offset;
// Increase the instance size to make space for this.
@ -296,12 +297,9 @@ class_getInstanceVariable(Class cls, const char *name)
if (ivarlist != NULL)
{
int i;
for (i = 0; i < ivarlist->count; i++)
for (int i = 0; i < ivarlist->count; i++)
{
Ivar ivar = &ivarlist->ivar_list[i];
if (strcmp(ivar->name, name) == 0)
{
return ivar;

Loading…
Cancel
Save