deep

a Cross Development Platform for Java

User Tools

Site Tools


dev:crosscompiler:type_descriptor

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
dev:crosscompiler:type_descriptor [2019/07/11 19:11]
ursgraf [Structure]
dev:crosscompiler:type_descriptor [2019/07/11 19:12] (current)
ursgraf [Structure]
Line 8: Line 8:
 The fields //size// indicates the size (in bytes) of an object of this type (without tag, see [[.:​objects|Objects]]). For arrays the entry is //​arrayComponentSize//,​ which is the size (in bytes) of one array element. The name of the class could be used for reflection. \\ The fields //size// indicates the size (in bytes) of an object of this type (without tag, see [[.:​objects|Objects]]). For arrays the entry is //​arrayComponentSize//,​ which is the size (in bytes) of one array element. The name of the class could be used for reflection. \\
  
-The entry //​extensionLevel//​ gives the number of superclasses. The method table is discussed below. The type table (//​baseClassTD[0]//​ up to //​baseClassTD[extLevel]//​) and interface type table (//​interface ChkId1//, ...) is used for [[.:​type_checking|Type Checking]]. The interface method table together with the //​interfaceDelegateMethod//​ and the entries with //interface 0Idinterface method offset// serves to find the right interface method, see [[.:​interfaces|Interfaces]]. \\+The entry //​extensionLevel//​ gives the number of superclasses. The method table is discussed below. The type table (//​baseClassTD[0]//​ up to //​baseClassTD[extLevel]//​) and interface type table (//​interface ChkId1//, ...) is used for [[.:​type_checking|Type Checking]]. The interface method table together with the //​interfaceDelegateMethod//​ and the entries with //interface0Idinterface0MethodOffset// serves to find the right interface method, see [[.:​interfaces|Interfaces]]. \\
 The garbage collector has to know which instance fields are references. For this there is a field //​instPtrOffset//​. This field has a fixed offset within the type descriptor. From there you can reach a list with all reference fields (//​nofInstPtr//,​ //​instPtrOffset[0]//,​ ... ). \\  The garbage collector has to know which instance fields are references. For this there is a field //​instPtrOffset//​. This field has a fixed offset within the type descriptor. From there you can reach a list with all reference fields (//​nofInstPtr//,​ //​instPtrOffset[0]//,​ ... ). \\ 
  
dev/crosscompiler/type_descriptor.txt · Last modified: 2019/07/11 19:12 by ursgraf