< prev index next >

src/share/vm/oops/constantPool.hpp

Print this page


  86   }
  87   int resolved_klass_index() const {
  88     assert(_resolved_klass_index != _temp_resolved_klass_index, "constant pool merging was incomplete");
  89     return _resolved_klass_index;
  90   }
  91 };
  92 
  93 class KlassSizeStats;
  94 
  95 class ConstantPool : public Metadata {
  96   friend class VMStructs;
  97   friend class JVMCIVMStructs;
  98   friend class BytecodeInterpreter;  // Directly extracts a klass in the pool for fast instanceof/checkcast
  99   friend class Universe;             // For null constructor
 100  private:
 101   Array<u1>*           _tags;        // the tag array describing the constant pool's contents
 102   ConstantPoolCache*   _cache;       // the cache holding interpreter runtime information
 103   InstanceKlass*       _pool_holder; // the corresponding class
 104   Array<u2>*           _operands;    // for variable-sized (InvokeDynamic) nodes, usually empty
 105 
 106   // ... will be changed to support compressed pointers

 107   Array<Klass*>*       _resolved_klasses;
 108 
 109   enum {
 110     _has_preresolution = 1,           // Flags
 111     _on_stack          = 2,
 112     _is_shared         = 4
 113   };
 114 
 115   int                  _flags;  // old fashioned bit twiddling
 116   int                  _length; // number of elements in the array
 117 
 118   union {
 119     // set for CDS to restore resolved references
 120     int                _resolved_reference_length;
 121     // keeps version number for redefined classes (used in backtrace)
 122     int                _version;
 123   } _saved;
 124 
 125   void set_tags(Array<u1>* tags)               { _tags = tags; }
 126   void tag_at_put(int which, jbyte t)          { tags()->at_put(which, t); }




  86   }
  87   int resolved_klass_index() const {
  88     assert(_resolved_klass_index != _temp_resolved_klass_index, "constant pool merging was incomplete");
  89     return _resolved_klass_index;
  90   }
  91 };
  92 
  93 class KlassSizeStats;
  94 
  95 class ConstantPool : public Metadata {
  96   friend class VMStructs;
  97   friend class JVMCIVMStructs;
  98   friend class BytecodeInterpreter;  // Directly extracts a klass in the pool for fast instanceof/checkcast
  99   friend class Universe;             // For null constructor
 100  private:
 101   Array<u1>*           _tags;        // the tag array describing the constant pool's contents
 102   ConstantPoolCache*   _cache;       // the cache holding interpreter runtime information
 103   InstanceKlass*       _pool_holder; // the corresponding class
 104   Array<u2>*           _operands;    // for variable-sized (InvokeDynamic) nodes, usually empty
 105 
 106   // Consider using an array of compressed klass pointers to
 107   // save space on 64-bit platforms.
 108   Array<Klass*>*       _resolved_klasses;
 109 
 110   enum {
 111     _has_preresolution = 1,           // Flags
 112     _on_stack          = 2,
 113     _is_shared         = 4
 114   };
 115 
 116   int                  _flags;  // old fashioned bit twiddling
 117   int                  _length; // number of elements in the array
 118 
 119   union {
 120     // set for CDS to restore resolved references
 121     int                _resolved_reference_length;
 122     // keeps version number for redefined classes (used in backtrace)
 123     int                _version;
 124   } _saved;
 125 
 126   void set_tags(Array<u1>* tags)               { _tags = tags; }
 127   void tag_at_put(int which, jbyte t)          { tags()->at_put(which, t); }


< prev index next >