< prev index next >

src/hotspot/share/oops/instanceKlass.hpp

Print this page




1268   void set_init_thread(Thread *thread)  { _init_thread = thread; }
1269 
1270   // The RedefineClasses() API can cause new method idnums to be needed
1271   // which will cause the caches to grow. Safety requires different
1272   // cache management logic if the caches can grow instead of just
1273   // going from NULL to non-NULL.
1274   bool idnum_can_increment() const      { return has_been_redefined(); }
1275   inline jmethodID* methods_jmethod_ids_acquire() const;
1276   inline void release_set_methods_jmethod_ids(jmethodID* jmeths);
1277 
1278   // Lock during initialization
1279 public:
1280   // Lock for (1) initialization; (2) access to the ConstantPool of this class.
1281   // Must be one per class and it has to be a VM internal object so java code
1282   // cannot lock it (like the mirror).
1283   // It has to be an object not a Mutex because it's held through java calls.
1284   oop init_lock() const;
1285 private:
1286   void fence_and_clear_init_lock();
1287 
1288   bool link_class_impl                           (bool throw_verifyerror, TRAPS);
1289   bool verify_code                               (bool throw_verifyerror, TRAPS);
1290   void initialize_impl                           (TRAPS);
1291   void initialize_super_interfaces               (TRAPS);
1292   void eager_initialize_impl                     ();
1293   /* jni_id_for_impl for jfieldID only */
1294   JNIid* jni_id_for_impl                         (int offset);
1295 
1296   // Returns the array class for the n'th dimension
1297   Klass* array_klass_impl(bool or_null, int n, TRAPS);
1298 
1299   // Returns the array class with this class as element type
1300   Klass* array_klass_impl(bool or_null, TRAPS);
1301 
1302   // find a local method (returns NULL if not found)
1303   Method* find_method_impl(const Symbol* name,
1304                            const Symbol* signature,
1305                            OverpassLookupMode overpass_mode,
1306                            StaticLookupMode static_mode,
1307                            PrivateLookupMode private_mode) const;
1308 
1309   static Method* find_method_impl(const Array<Method*>* methods,




1268   void set_init_thread(Thread *thread)  { _init_thread = thread; }
1269 
1270   // The RedefineClasses() API can cause new method idnums to be needed
1271   // which will cause the caches to grow. Safety requires different
1272   // cache management logic if the caches can grow instead of just
1273   // going from NULL to non-NULL.
1274   bool idnum_can_increment() const      { return has_been_redefined(); }
1275   inline jmethodID* methods_jmethod_ids_acquire() const;
1276   inline void release_set_methods_jmethod_ids(jmethodID* jmeths);
1277 
1278   // Lock during initialization
1279 public:
1280   // Lock for (1) initialization; (2) access to the ConstantPool of this class.
1281   // Must be one per class and it has to be a VM internal object so java code
1282   // cannot lock it (like the mirror).
1283   // It has to be an object not a Mutex because it's held through java calls.
1284   oop init_lock() const;
1285 private:
1286   void fence_and_clear_init_lock();
1287 
1288   bool link_class_impl                           (TRAPS);
1289   bool verify_code                               (TRAPS);
1290   void initialize_impl                           (TRAPS);
1291   void initialize_super_interfaces               (TRAPS);
1292   void eager_initialize_impl                     ();
1293   /* jni_id_for_impl for jfieldID only */
1294   JNIid* jni_id_for_impl                         (int offset);
1295 
1296   // Returns the array class for the n'th dimension
1297   Klass* array_klass_impl(bool or_null, int n, TRAPS);
1298 
1299   // Returns the array class with this class as element type
1300   Klass* array_klass_impl(bool or_null, TRAPS);
1301 
1302   // find a local method (returns NULL if not found)
1303   Method* find_method_impl(const Symbol* name,
1304                            const Symbol* signature,
1305                            OverpassLookupMode overpass_mode,
1306                            StaticLookupMode static_mode,
1307                            PrivateLookupMode private_mode) const;
1308 
1309   static Method* find_method_impl(const Array<Method*>* methods,


< prev index next >