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

Next revision
Previous revision
dev:crosscompiler:fields_of_item [2014/02/10 13:39] – external edit 127.0.0.1dev:crosscompiler:fields_of_item [2022/09/30 10:20] (current) ursgraf
Line 1: Line 1:
-====== Use of Index, Offset and Address of the Item ======+====== Use of Index, Offset and Address of an Item ======
  
 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 ''org.deepjava.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.1392035950.txt.gz · Last modified: 2016/02/25 13:33 (external edit)