Overview | Package | Class | Use | Tree | Deprecated | Index | Help
| " 2013 FRC Java API "
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

## com.sun.squawk.vm
Class FieldOffsets

    java.lang.Object
      com.sun.squawk.vm.FieldOffsets

    public class FieldOffsets

extends Object

This class contains the offsets and types for fields that must be directly accessed by the VM or other Squawk tools such as the mapper. The romizer ensures that these offsets and types are correct when it creates the image for the bootstrap suite. The value of the offset depends on whether the field is static or not - see `Member.getOffset()` for more detail.

A simple version of the field's type is also encoded into the high 32 bits of each entry all of which are longs. The types are restricted to byte, char, short, int, long, float, double, and Object and are encoded using the corresponding `CID` value placed in the high 32 bits of the long.

This unfortunate encoding is needed if we want to keep the type and offset in one place because these values are needed in parts of the VM that need to be executed before normal object construction can take place. Two routines are provided to decode the offset and type of a field, and the offset can also be obtained by casting the field into an int.

The name of the constant must be composed of the name of the class that defines the field (with '.'s replaced by '_'s) and the name of the field with a '$' separating them.

Field Summary
`static long` | `com_sun_squawk_Isolate$savedStackChunks` The offset of the 'savedStackChunks' field in com.sun.squawk.Isolate.
`static long` | `com_sun_squawk_Klass$componentType` The offset of the 'componentType' field in com.sun.squawk.Klass.
`static long` | `com_sun_squawk_Klass$dataMap` The offset of the 'dataMap' field in com.sun.squawk.Klass.
`static long` | `com_sun_squawk_Klass$dataMapLength` The offset of the 'dataMapLength' field in com.sun.squawk.Klass.
`static long` | `com_sun_squawk_Klass$dataMapWord` The offset of the 'dataMapWord' field in com.sun.squawk.Klass.
`static long` | `com_sun_squawk_Klass$id` The offset of the 'id' field in com.sun.squawk.Klass.
`static long` | `com_sun_squawk_Klass$indexForClinit` The offset of the 'indexForClinit' field in com.sun.squawk.Klass.
`static long` | `com_sun_squawk_Klass$indexForInit` The offset of the 'indexForInit' field in com.sun.squawk.Klass.
`static long` | `com_sun_squawk_Klass$indexForMain` The offset of the 'indexForMain' field in com.sun.squawk.Klass.
`static long` | `com_sun_squawk_Klass$initModifiers` The offset of the 'initModifiers' field in com.sun.squawk.Klass.
`static long` | `com_sun_squawk_Klass$instanceSizeBytes` The offset of the 'instanceSizeBytes' field in com.sun.squawk.Klass.
`static long` | `com_sun_squawk_Klass$interfaces` The offset of the 'superType' field in com.sun.squawk.Klass.
`static long` | `com_sun_squawk_Klass$modifiers` The offset of the 'modifiers' field in com.sun.squawk.Klass.
`static long` | `com_sun_squawk_Klass$mustClinit` The offset of the 'mustClinit' field in com.sun.squawk.Klass.
`static long` | `com_sun_squawk_Klass$name` The offset of the 'name' field in com.sun.squawk.Klass.
`static long` | `com_sun_squawk_Klass$objects` The offset of the 'objects' field in com.sun.squawk.Klass.
`static long` | `com_sun_squawk_Klass$oopMap` The offset of the 'oopMap' field in com.sun.squawk.Klass.
`static long` | `com_sun_squawk_Klass$oopMapWord` The offset of the 'oopMapWord' field in com.sun.squawk.Klass.
`static long` | `com_sun_squawk_Klass$refStaticFieldsSize` The offset of the 'refStaticFieldsSize' field in com.sun.squawk.Klass.
`static long` | `com_sun_squawk_Klass$self` The offset of the 'self' field in in com.sun.squawk.Klass and the 'klass' field com.sun.squawk.ObjectAssociation which must be identical.
`static long` | `com_sun_squawk_Klass$state` The offset of the 'state' field in com.sun.squawk.Klass.
`static long` | `com_sun_squawk_Klass$staticFieldsSize` The offset of the 'staticFieldsSize' field in com.sun.squawk.Klass.
`static long` | `com_sun_squawk_Klass$staticMethods` The offset of the 'staticMethods' field in com.sun.squawk.Klass.
`static long` | `com_sun_squawk_Klass$superType` The offset of the 'superType' field in com.sun.squawk.Klass.
`static long` | `com_sun_squawk_Klass$virtualMethods` The offset of the 'virtualMethods' field in com.sun.squawk.Klass and com.sun.squawk.ObjectAssociation.
`static long` | `com_sun_squawk_KlassMetadata$classTable` The offset of the 'classTable' field in com.sun.squawk.KlassMetadata.
`static long` | `com_sun_squawk_KlassMetadata$definedClass` The offset of the 'definedClass' field in com.sun.squawk.KlassMetadata.
`static long` | `com_sun_squawk_KlassMetadata$symbols` The offset of the 'definedClass' field in com.sun.squawk.KlassMetadata.
`static long` | `com_sun_squawk_ObjectAssociation$klass`
`static long` | `com_sun_squawk_ObjectAssociation$virtualMethods`
`static long` | `com_sun_squawk_Suite$classes` The offset of the 'classes' field in com.sun.squawk.Suite.
`static long` | `com_sun_squawk_Suite$metadatas` The offset of the 'metadatas' field in com.sun.squawk.Suite.
`static long` | `com_sun_squawk_Suite$name` The offset of the 'name' field in com.sun.squawk.Suite.
`static long` | `com_sun_squawk_util_SquawkHashtable$entryTable` The offset of the 'entryTable' field in com.sun.squawk.util.SquawkHashtable.
`static long` | `com_sun_squawk_VMThread$isolate` The offset of the 'isolate' field in com.sun.squawk.VMThread.
`static long` | `com_sun_squawk_VMThread$stack` The offset of the 'stack' field in com.sun.squawk.VMThread.
`static long` | `com_sun_squawk_VMThread$stackSize` The offset of the 'stackSize' field in com.sun.squawk.VMThread.
`static long` | `java_lang_Class$klass` The offset of the 'vmThread' field in java.lang.Thread.
`static long` | `java_lang_Thread$target` The offset of the 'target' field in java.lang.Thread.
`static long` | `java_lang_Thread$vmThread` The offset of the 'vmThread' field in java.lang.Thread.
`static long` | `java_lang_Throwable$trace` The offset of the 'trace' field in java.lang.Throwable.

Method Summary
`static int` | `decodeOffset(long fieldDesc)` Decodes a field's offset from a given field descriptor.
`static int` | `decodeSystemID(long fieldDesc)` Decodes a field's type from a given field descriptor.

Methods inherited from class java.lang.Object
`equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Field Detail

### com_sun_squawk_Klass$self

    public static final long com_sun_squawk_Klass$self

  The offset of the 'self' field in in com.sun.squawk.Klass and the 'klass' field com.sun.squawk.ObjectAssociation which must be identical.

  See Also:
    Constant Field Values

### com_sun_squawk_ObjectAssociation$klass

    public static final long com_sun_squawk_ObjectAssociation$klass

See Also:
  Constant Field Values

### com_sun_squawk_Klass$virtualMethods

    public static final long com_sun_squawk_Klass$virtualMethods

  The offset of the 'virtualMethods' field in com.sun.squawk.Klass and com.sun.squawk.ObjectAssociation. which must be identical.

  See Also:
    Constant Field Values

### com_sun_squawk_ObjectAssociation$virtualMethods

    public static final long com_sun_squawk_ObjectAssociation$virtualMethods

See Also:
  Constant Field Values

### com_sun_squawk_Klass$staticMethods

    public static final long com_sun_squawk_Klass$staticMethods

  The offset of the 'staticMethods' field in com.sun.squawk.Klass.

  See Also:
    Constant Field Values

### com_sun_squawk_Klass$name

    public static final long com_sun_squawk_Klass$name

  The offset of the 'name' field in com.sun.squawk.Klass.

  See Also:
    Constant Field Values

### com_sun_squawk_Klass$componentType

    public static final long com_sun_squawk_Klass$componentType

  The offset of the 'componentType' field in com.sun.squawk.Klass.

  See Also:
    Constant Field Values

### com_sun_squawk_Klass$superType

    public static final long com_sun_squawk_Klass$superType

  The offset of the 'superType' field in com.sun.squawk.Klass.

  See Also:
    Constant Field Values

### com_sun_squawk_Klass$interfaces

    public static final long com_sun_squawk_Klass$interfaces

  The offset of the 'superType' field in com.sun.squawk.Klass.

  See Also:
    Constant Field Values

### com_sun_squawk_Klass$objects

    public static final long com_sun_squawk_Klass$objects

  The offset of the 'objects' field in com.sun.squawk.Klass.

  See Also:
    Constant Field Values

### com_sun_squawk_Klass$oopMap

    public static final long com_sun_squawk_Klass$oopMap

  The offset of the 'oopMap' field in com.sun.squawk.Klass.

  See Also:
    Constant Field Values

### com_sun_squawk_Klass$oopMapWord

    public static final long com_sun_squawk_Klass$oopMapWord

  The offset of the 'oopMapWord' field in com.sun.squawk.Klass.

  See Also:
    Constant Field Values

### com_sun_squawk_Klass$dataMap

    public static final long com_sun_squawk_Klass$dataMap

  The offset of the 'dataMap' field in com.sun.squawk.Klass.

  See Also:
    Constant Field Values

### com_sun_squawk_Klass$dataMapWord

    public static final long com_sun_squawk_Klass$dataMapWord

  The offset of the 'dataMapWord' field in com.sun.squawk.Klass.

  See Also:
    Constant Field Values

### com_sun_squawk_Klass$modifiers

    public static final long com_sun_squawk_Klass$modifiers

  The offset of the 'modifiers' field in com.sun.squawk.Klass.

  See Also:
    Constant Field Values

### com_sun_squawk_Klass$dataMapLength

    public static final long com_sun_squawk_Klass$dataMapLength

  The offset of the 'dataMapLength' field in com.sun.squawk.Klass.

  See Also:
    Constant Field Values

### com_sun_squawk_Klass$id

    public static final long com_sun_squawk_Klass$id

  The offset of the 'id' field in com.sun.squawk.Klass.

  See Also:
    Constant Field Values

### com_sun_squawk_Klass$instanceSizeBytes

    public static final long com_sun_squawk_Klass$instanceSizeBytes

  The offset of the 'instanceSizeBytes' field in com.sun.squawk.Klass.

  See Also:
    Constant Field Values

### com_sun_squawk_Klass$staticFieldsSize

    public static final long com_sun_squawk_Klass$staticFieldsSize

  The offset of the 'staticFieldsSize' field in com.sun.squawk.Klass.

  See Also:
    Constant Field Values

### com_sun_squawk_Klass$refStaticFieldsSize

    public static final long com_sun_squawk_Klass$refStaticFieldsSize

  The offset of the 'refStaticFieldsSize' field in com.sun.squawk.Klass.

  See Also:
    Constant Field Values

### com_sun_squawk_Klass$indexForInit

    public static final long com_sun_squawk_Klass$indexForInit

  The offset of the 'indexForInit' field in com.sun.squawk.Klass.

  See Also:
    Constant Field Values

### com_sun_squawk_Klass$indexForClinit

    public static final long com_sun_squawk_Klass$indexForClinit

  The offset of the 'indexForClinit' field in com.sun.squawk.Klass.

  See Also:
    Constant Field Values

### com_sun_squawk_Klass$indexForMain

    public static final long com_sun_squawk_Klass$indexForMain

  The offset of the 'indexForMain' field in com.sun.squawk.Klass.

  See Also:
    Constant Field Values

### com_sun_squawk_Klass$state

    public static final long com_sun_squawk_Klass$state

  The offset of the 'state' field in com.sun.squawk.Klass.

  See Also:
    Constant Field Values

### com_sun_squawk_Klass$initModifiers

    public static final long com_sun_squawk_Klass$initModifiers

  The offset of the 'initModifiers' field in com.sun.squawk.Klass.

  See Also:
    Constant Field Values

### com_sun_squawk_Klass$mustClinit

    public static final long com_sun_squawk_Klass$mustClinit

  The offset of the 'mustClinit' field in com.sun.squawk.Klass.

  See Also:
    Constant Field Values

### com_sun_squawk_util_SquawkHashtable$entryTable

    public static final long com_sun_squawk_util_SquawkHashtable$entryTable

  The offset of the 'entryTable' field in com.sun.squawk.util.SquawkHashtable.

  See Also:
    Constant Field Values

### java_lang_Thread$vmThread

    public static final long java_lang_Thread$vmThread

  The offset of the 'vmThread' field in java.lang.Thread.

  See Also:
    Constant Field Values

### java_lang_Thread$target

    public static final long java_lang_Thread$target

  The offset of the 'target' field in java.lang.Thread.

  See Also:
    Constant Field Values

### java_lang_Class$klass

    public static final long java_lang_Class$klass

  The offset of the 'vmThread' field in java.lang.Thread.

  See Also:
    Constant Field Values

### com_sun_squawk_VMThread$isolate

    public static final long com_sun_squawk_VMThread$isolate

  The offset of the 'isolate' field in com.sun.squawk.VMThread.

  See Also:
    Constant Field Values

### com_sun_squawk_VMThread$stack

    public static final long com_sun_squawk_VMThread$stack

  The offset of the 'stack' field in com.sun.squawk.VMThread.

  See Also:
    Constant Field Values

### com_sun_squawk_VMThread$stackSize

    public static final long com_sun_squawk_VMThread$stackSize

  The offset of the 'stackSize' field in com.sun.squawk.VMThread.

  See Also:
    Constant Field Values

### com_sun_squawk_Isolate$savedStackChunks

    public static final long com_sun_squawk_Isolate$savedStackChunks

  The offset of the 'savedStackChunks' field in com.sun.squawk.Isolate.

  See Also:
    Constant Field Values

### java_lang_Throwable$trace

    public static final long java_lang_Throwable$trace

  The offset of the 'trace' field in java.lang.Throwable. Used by VM.printVMStackTrace()..

  See Also:
    Constant Field Values

### com_sun_squawk_Suite$classes

    public static final long com_sun_squawk_Suite$classes

  The offset of the 'classes' field in com.sun.squawk.Suite. Used by com.sun.squawk.ObjectGraphLoader of the Romizer.

  See Also:
    Constant Field Values

### com_sun_squawk_Suite$name

    public static final long com_sun_squawk_Suite$name

  The offset of the 'name' field in com.sun.squawk.Suite. Used by com.sun.squawk.ObjectGraphLoader of the Romizer.

  See Also:
    Constant Field Values

### com_sun_squawk_Suite$metadatas

    public static final long com_sun_squawk_Suite$metadatas

  The offset of the 'metadatas' field in com.sun.squawk.Suite. Used by com.sun.squawk.ObjectGraphLoader of the Romizer.

  See Also:
    Constant Field Values

### com_sun_squawk_KlassMetadata$definedClass

    public static final long com_sun_squawk_KlassMetadata$definedClass

  The offset of the 'definedClass' field in com.sun.squawk.KlassMetadata. Used by com.sun.squawk.ObjectGraphLoader of the Romizer.

  See Also:
    Constant Field Values

### com_sun_squawk_KlassMetadata$symbols

    public static final long com_sun_squawk_KlassMetadata$symbols

  The offset of the 'definedClass' field in com.sun.squawk.KlassMetadata. Used by com.sun.squawk.ObjectGraphLoader of the Romizer.

  See Also:
    Constant Field Values

### com_sun_squawk_KlassMetadata$classTable

    public static final long com_sun_squawk_KlassMetadata$classTable

  The offset of the 'classTable' field in com.sun.squawk.KlassMetadata. Used by com.sun.squawk.ObjectGraphLoader of the Romizer.

  See Also:
    Constant Field Values

Method Detail

### decodeSystemID

    public static int decodeSystemID(long fieldDesc)

  Decodes a field's type from a given field descriptor.

  Parameters:
    `fieldDesc` - an encoded field descriptor
  Returns:
    the system ID of the type encoded in `fieldDesc`

### decodeOffset

    public static int decodeOffset(long fieldDesc)

  Decodes a field's offset from a given field descriptor.

  Parameters:
    `fieldDesc` - an encoded field descriptor
  Returns:
    the offset encoded in `fieldDesc`. This is equivalent to `(int)field`

Overview | Package | Class | Use | Tree | Deprecated | Index | Help
| " 2013 FRC Java API "
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

"
For updated information see the Java FRC site
"