ConstPoolEntry Union Reference

#include <Class.h>

List of all members.


Detailed Description

The constant pool entry descriptor.

For each constant pool entry, the descriptor content varies depending on the constant pool tag that corresponds to this constant pool entry. Content of each entry is described in The Java Virtual Machine Specification, Chapter 4, The Constant Pool section, with the following exceptions:

  1. A zero entry of the constant pool contains an array of tags corresponding to entries in the constant pool entries array.
  2. As required by The Java Virtual Machine Specification, Chapter 5 Linking/Resolution section, errors are cached for entries that have not been resolved earlier for some reason.


Public Attributes

unsigned char * tags
 Zero entry of constant pool only: array of tags for constant pool.
struct {
   union {
      Class *   klass
 Resolved class.
      struct {
         ConstPoolEntry *   next
 Next resolution error in this constant pool.
         ManagedObject *   cause
 Exception object describing an error.
      }   error
 Resolution error, if any.
   } 
   uint16   name_index
 Index to class name in this constant pool.
CONSTANT_Class
 CONSTANT_Class.
struct {
   String *   string
 Resolved class.
   uint16   string_index
 Index of CONSTANT_Utf8 for this string.
CONSTANT_String
 CONSTANT_String.
struct {
   union {
      Class_Member *   member
 Generic class member for CONSTANT_*ref.
      Field *   field
 Resolved entry for CONSTANT_Fieldref.
      Method *   method
 resolved entry for CONSTANT_[Interface]Methodref.
      struct {
         ConstPoolEntry *   next
 Next resolution error in this constant pool.
         ManagedObject *   cause
 Exception object describing error.
      }   error
 Resolution error, if any.
   } 
   uint16   class_index
 Index of CONSTANT_Class for this CONSTANT_*ref.
   uint16   name_and_type_index
 Index of CONSTANT_NameAndType for CONSTANT_*ref.
CONSTANT_ref
 CONSTANT_{Field|Method|InterfaceMethod}ref.
struct {
   ConstPoolEntry *   next
 Next resolution error in this constant pool.
   ManagedObject *   cause
 Exception object describing error.
error
 Shortcut to resolution error in CONSTANT_Class and CONSTANT_ref.
uint32 int_value
 CONSTANT_Integer.
float float_value
 CONSTANT_Float.
struct {
   uint32   low_bytes
   uint32   high_bytes
CONSTANT_8byte
 CONSTANT_Long and CONSTANT_Double.
struct {
   String *   name
 Resolved name.
   String *   descriptor
 Resolved descriptor.
   uint16   name_index
 Name index in this constant pool.
   uint16   descriptor_index
 Descriptor index in this constant pool.
CONSTANT_NameAndType
 CONSTANT_NameAndType.
struct {
   String *   string
 Content of CONSTANT_Utf8 entry.
CONSTANT_Utf8
 CONSTANT_Utf8.


Member Data Documentation

unsigned char* ConstPoolEntry.tags

Zero entry of constant pool only: array of tags for constant pool.

Class* ConstPoolEntry.klass

Resolved class.

ConstPoolEntry* ConstPoolEntry.next

Next resolution error in this constant pool.

ManagedObject* ConstPoolEntry.cause

Exception object describing an error.

struct { ... } ConstPoolEntry.error

Resolution error, if any.

uint16 ConstPoolEntry.name_index

Name index in this constant pool.

struct { ... } ConstPoolEntry.CONSTANT_Class

CONSTANT_Class.

String* ConstPoolEntry.string

Resolved class.

uint16 ConstPoolEntry.string_index

Index of CONSTANT_Utf8 for this string.

struct { ... } ConstPoolEntry.CONSTANT_String

CONSTANT_String.

Class_Member* ConstPoolEntry.member

Generic class member for CONSTANT_*ref.

Only valid for resolved refs.

Field* ConstPoolEntry.field

Resolved entry for CONSTANT_Fieldref.

Method* ConstPoolEntry.method

resolved entry for CONSTANT_[Interface]Methodref.

ConstPoolEntry* ConstPoolEntry.next

Next resolution error in this constant pool.

ManagedObject* ConstPoolEntry.cause

Exception object describing error.

struct { ... } ::@12 ConstPoolEntry.error

Resolution error, if any.

uint16 ConstPoolEntry.class_index

Index of CONSTANT_Class for this CONSTANT_*ref.

uint16 ConstPoolEntry.name_and_type_index

Index of CONSTANT_NameAndType for CONSTANT_*ref.

struct { ... } ConstPoolEntry.CONSTANT_ref

CONSTANT_{Field|Method|InterfaceMethod}ref.

ConstPoolEntry* ConstPoolEntry.next

Next resolution error in this constant pool.

ManagedObject* ConstPoolEntry.cause

Exception object describing error.

struct { ... } ConstPoolEntry.error

Shortcut to resolution error in CONSTANT_Class and CONSTANT_ref.

uint32 ConstPoolEntry.int_value

CONSTANT_Integer.

float ConstPoolEntry.float_value

CONSTANT_Float.

uint32 ConstPoolEntry.low_bytes

uint32 ConstPoolEntry.high_bytes

struct { ... } ConstPoolEntry.CONSTANT_8byte

CONSTANT_Long and CONSTANT_Double.

Note:
In this case we pack all 8 bytes of long/double in one ConstPoolEntry and leave the second ConstPoolEntry of the long/double unused.

String* ConstPoolEntry.name

Resolved name.

String* ConstPoolEntry.descriptor

Resolved descriptor.

uint16 ConstPoolEntry.descriptor_index

Descriptor index in this constant pool.

struct { ... } ConstPoolEntry.CONSTANT_NameAndType

CONSTANT_NameAndType.

String* ConstPoolEntry.string

Content of CONSTANT_Utf8 entry.

struct { ... } ConstPoolEntry.CONSTANT_Utf8

CONSTANT_Utf8.


The documentation for this union was generated from the following file:

Genereated on Tue Mar 11 19:26:00 2008 by Doxygen.

(c) Copyright 2005, 2008 The Apache Software Foundation or its licensors, as applicable.