Fix for non-fragile ivar fixup when classes are loaded in the wrong order.

main
theraven 16 years ago
parent 0e7441570b
commit fa488d6cea

@ -733,6 +733,10 @@ __objc_compute_ivar_offsets (Class class)
if (class->instance_size <= 0) if (class->instance_size <= 0)
{ {
Class super = class_superclass_of_class(class); Class super = class_superclass_of_class(class);
if (super->instance_size <= 0)
{
__objc_compute_ivar_offsets(super);
}
if (Nil == super) { return; } if (Nil == super) { return; }
long ivar_start = super->instance_size; long ivar_start = super->instance_size;
class->instance_size = ivar_start - class->instance_size; class->instance_size = ivar_start - class->instance_size;

Loading…
Cancel
Save