-
Notifications
You must be signed in to change notification settings - Fork 62
VmLinker
See also ClassFile
TODO: we need some way to define interface-specific VMT. Possibly 'I' record which is just like 'S' (signature) but has interface name added.
Class is represented as binary blob containing tagged records:
Defines class name, base class name, number of object fields and methods.
String signature, int32 ordinal, int32 number of args, int32 is constructor.
int32 index in const pool, type, value. Currently just String type is supported.
TODO: Add loader flags to process value later, see below.
List of name/ordinal parts for fields.
TODO: add types?!
Constant record can have marker that requests it to be postprocessed after load:
- ConstIsClassRef - string must be resolved to class object and replaced with reference.
- ConstIsMethodOrdinal - string must be resolved to class method and replaced with method ordinal (int).
- ConstIsFieldOrdinal - string must be resolved to class field and replaced with method ordinal (int).
Ordinal references includes class name, which has to be passed separately, so, possibly, we need this flag to be the first field of record to know how to load the rest.
:: Home :: RoadMap :: History :: ChangeLog :: ScreenShots :: Phantom Developer's Guide