deep

a Cross Development Platform for Java

User Tools

Site Tools


dev:crosscompiler:fields_of_item

Differences

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

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
Last revisionBoth sides next revision
dev:crosscompiler:fields_of_item [2015/03/29 08:59] ursgrafdev:crosscompiler:fields_of_item [2016/02/25 13:33] – external edit 127.0.0.1
Line 2: Line 2:
  
 These fields have different meanings according to what a given item represents.  These fields have different meanings according to what a given item represents. 
-**Note** Statements in brackets denote a type, e.g. [Class] means an item of type ''ch.ntb.inf.deep.classItems.Class''.+**Note**Statements in brackets denote a type, e.g. [Class] means an item of type ''ch.ntb.inf.deep.classItems.Class''.
  
 ==== Classes [Class] ==== ==== Classes [Class] ====
Line 11: Line 11:
 ==== Arrays [Array] ==== ==== Arrays [Array] ====
   * //index//: Not used, always -1.   * //index//: Not used, always -1.
-  * //offset//: Offset des Typdescriptors im Segment+  * //offset//: Offset in bytes of the type descriptor in the memory segment
-  * //address//: Die absolute Adresse des Typdescriptors.+  * //address//: Contains the absolute address of the array type descriptor.
  
 ==== Methoden [Method] ==== ==== Methoden [Method] ====
-  * //index//: Bei Instanzmethoden der Index der Methode in der Methodentabelle (beginnend bei 0). Bei Klassenmethoden ist //index// immer -1. -> Wird vom CFR gesetzt+  * //index//: If instance method -> index into method table (starting with 0), if class method -> always -1. //index// is set by the [[dev:crosscompiler:cfr|Class File Reader]]
-  * //offset//: Byteoffset der Methode ausgehend von der Startadresse des Codes der Klasse+  * //offset//: Offset in bytes of the method starting from the start address of the code of the class of this method
-  * //address//: Absolute Adresse der Methode.+  * //address//: Contains the absolute address of the method.
  
-==== Felder [DataItem] ==== +==== Fields [DataItem] ==== 
-<box right 30% | IMPORTANT Konstante Referenzen+<box right 30% | IMPORTANT Constant References
-**Achtung:** bei konstanten, statischen Referenzen ist das Const-Flag (dpfConst) __nicht__ gesetzt, da diese wie normale, nicht konstante statische Felder zu behandeln sindDies weil auf solche Felder ein einmaliger Zugriff aus dem Klassenkonstruktor stattfindet! +**Important:** With constant and static references the const flag //dpfConst// will not be set. Such fields must be handled like regular non constant fields because the class constructor will access such a field exactly once
- +**Example:**
-**Beispiel:**+
   static final Object o = new Object();   static final Object o = new Object();
 </box> </box>
-  - **Klassen-Felder [DataItem]:** +  - **Class fields [DataItem]:** 
-    - Konstante Felder [NamedConst]:+    - Constant fields [NamedConst]:
       * //index//: Not used, always -1.       * //index//: Not used, always -1.
       * //offset//: not used, always -1.       * //offset//: not used, always -1.
       * //address//: not used, always -1.       * //address//: not used, always -1.
-    - Nicht konstante Felder [DataItem]:+    - Non-constant fields [DataItem]:
       * //index//: not used, always -1.       * //index//: not used, always -1.
-      * //offset//: Byteoffset des Feldes (beginnend bei für das erste Feld). +      * //offset//: Offset in bytes (starting with for the first field). 
-      * //address//: Absolute Adresse des Feldes.+      * //address//: Contains the absolute address of the field.
   - **Instanz-Felder [DataItem]:**   - **Instanz-Felder [DataItem]:**
-    * //index//: Wird nicht verwendetist immer -1; +    * //index//: Not usedalways -1. 
-    * //offset//: Byteoffset des Feldes beginnend bei 0 (inkl. Berücksichtung der Felder der Oberklassen).+    * //offset//: Offset in bytes starting with 0 (fields of superclasses are accounted for).
     * //address//: Not used, always -1.     * //address//: Not used, always -1.
  
-==== Konstanten [Constant] ==== +==== Constants [Constant] ==== 
-  - **Zahlen [StdConstant]:** +  - **Numbers [StdConstant]:** 
-    * //index//: Wenn die Konstante vom Typ //float// oder //double// ist, ist //index// der Index der Konstante im KonstantenpoolAnsonsten immer -1; +    * //index//: If of type //float// or //double// -> index in the const poolElse always -1. 
-    * //offset//: Wenn die Konstante vom Typ //float// oder //double// ist, ist //offset// der Byteoffset der Konstante im KonstantenpoolAnsonsten immer -1; +    * //offset//: If of type //float// or //double// -> offset in bytes in the const poolElse always -1. 
-    * //address//: Wenn es sich um eine Konstante vom Typ //float// oder //double// handelt, ist //address// die absolute Adresse der Konstante (direkt im Konstantenblock)Ansonsten immer -1. +    * //address//: If of type //float// or //double// -> absolute address. Else always -1. 
-  - **Stings [StringLiteral]:** +  - **Strings [StringLiteral]:** 
-    * //index//: Wenn es sich bei der Konstante um einen String handelt, so wird in //index// der Index des Strings im Stringpool abgelegt+    * //index//: Index in the string pool
-    * //offset//: Wenn es sich bei der Konstante um einen String handelt, so wird in //offset// der Byteoffset des Strings im Stringpool abgelegt+    * //offset//: Offset in bytes in the string pool
-    * //address//: Absolute Adresse des konstanten Strings (direkt im Konstantenblock).+    * //address//: Absolute address.
dev/crosscompiler/fields_of_item.txt · Last modified: 2022/09/30 10:20 by ursgraf