Some problems with the current implementation:
-
It is difficult to (re)construct the C structure layout for a node. This is needed when implementing a disassembler, where you want to display structures overlaid on top of the raw binary data.
-
Node layouts are re-created with each call to -layout. Layouts should be cached. Many layouts are the same for all instances of a node type and could be defined at the class (vs instance) level.
-
The current mechanism for describing bitfields is less than ideal.
-
The type of an MKNodeField is attempting to describe both the semantic type of the field as well as the data type. These should be split.
-
MKNodeFieldOptions should be removed. It was added to simplify the implementation of Mach-O Explorer, with the justification that other viewer apps built with Mach-O Kit could also use it. But its purpose is too narrow. It does not belong in Mach-O Kit.
Some problems with the current implementation:
It is difficult to (re)construct the C structure layout for a node. This is needed when implementing a disassembler, where you want to display structures overlaid on top of the raw binary data.
Node layouts are re-created with each call to
-layout. Layouts should be cached. Many layouts are the same for all instances of a node type and could be defined at the class (vs instance) level.The current mechanism for describing bitfields is less than ideal.
The
typeof anMKNodeFieldis attempting to describe both the semantic type of the field as well as the data type. These should be split.MKNodeFieldOptionsshould be removed. It was added to simplify the implementation of Mach-O Explorer, with the justification that other viewer apps built with Mach-O Kit could also use it. But its purpose is too narrow. It does not belong in Mach-O Kit.