You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Bug Description:
For a Mach-O binary NSObject has the following type definition in the ioscommon-aarch64 library:
typedefstructobjc_class*NSObject;
While this is not entirely incorrect its not really the best way to define it.
When viewing DSC the type definition is actually incorrect but in a different way for some reason:
structNSObject
{
structobjc_class_tisa;
};
Additionally the size of the NSObject is 8 initially when viewing DSC, but if you go to change the type of its only field, isa, and then just provide the exact same type, NSObject becomes 0x28 in size. This is the correct size for that definition because objc_class_t is that size and the definition defines it as an inline struct field.
Expected Behavior:
The type definition is more accurately defined as:
structNSObject
{
structobjc_class_t*isa;
};
One of the benefits of this is it allows it to be used as a base class for other class/struct definitions.
The text was updated successfully, but these errors were encountered:
WeiN76LQh
changed the title
NSObject should be defined as a struct for Mach-O binariesNSObject is defined incorrectly in builtin type libraries
Dec 10, 2024
Version and Platform (required):
Bug Description:
For a Mach-O binary
NSObject
has the following type definition in theioscommon-aarch64
library:While this is not entirely incorrect its not really the best way to define it.
When viewing DSC the type definition is actually incorrect but in a different way for some reason:
Additionally the size of the
NSObject
is8
initially when viewing DSC, but if you go to change the type of its only field,isa
, and then just provide the exact same type,NSObject
becomes0x28
in size. This is the correct size for that definition becauseobjc_class_t
is that size and the definition defines it as an inline struct field.Expected Behavior:
The type definition is more accurately defined as:
One of the benefits of this is it allows it to be used as a base class for other class/struct definitions.
The text was updated successfully, but these errors were encountered: