hotspot/src/share/vm/oops/instanceKlass.cpp
changeset 33593 60764a78fa5c
parent 33576 6dbde58b08a6
child 33602 16053580a684
equal deleted inserted replaced
33579:01ade4446d96 33593:60764a78fa5c
  1139     JavaCalls::call(&result, h_method, &args, CHECK); // Static call (no args)
  1139     JavaCalls::call(&result, h_method, &args, CHECK); // Static call (no args)
  1140   }
  1140   }
  1141 }
  1141 }
  1142 
  1142 
  1143 
  1143 
  1144 void InstanceKlass::mask_for(methodHandle method, int bci,
  1144 void InstanceKlass::mask_for(const methodHandle& method, int bci,
  1145   InterpreterOopMap* entry_for) {
  1145   InterpreterOopMap* entry_for) {
  1146   // Dirty read, then double-check under a lock.
  1146   // Dirty read, then double-check under a lock.
  1147   if (_oop_map_cache == NULL) {
  1147   if (_oop_map_cache == NULL) {
  1148     // Otherwise, allocate a new one.
  1148     // Otherwise, allocate a new one.
  1149     MutexLocker x(OopMapCacheAlloc_lock);
  1149     MutexLocker x(OopMapCacheAlloc_lock);
  1643 // Lookup or create a jmethodID.
  1643 // Lookup or create a jmethodID.
  1644 // This code is called by the VMThread and JavaThreads so the
  1644 // This code is called by the VMThread and JavaThreads so the
  1645 // locking has to be done very carefully to avoid deadlocks
  1645 // locking has to be done very carefully to avoid deadlocks
  1646 // and/or other cache consistency problems.
  1646 // and/or other cache consistency problems.
  1647 //
  1647 //
  1648 jmethodID InstanceKlass::get_jmethod_id(instanceKlassHandle ik_h, methodHandle method_h) {
  1648 jmethodID InstanceKlass::get_jmethod_id(instanceKlassHandle ik_h, const methodHandle& method_h) {
  1649   size_t idnum = (size_t)method_h->method_idnum();
  1649   size_t idnum = (size_t)method_h->method_idnum();
  1650   jmethodID* jmeths = ik_h->methods_jmethod_ids_acquire();
  1650   jmethodID* jmeths = ik_h->methods_jmethod_ids_acquire();
  1651   size_t length = 0;
  1651   size_t length = 0;
  1652   jmethodID id = NULL;
  1652   jmethodID id = NULL;
  1653 
  1653 
  2411 // Returns true iff super_method can be overridden by a method in targetclassname
  2411 // Returns true iff super_method can be overridden by a method in targetclassname
  2412 // See JSL 3rd edition 8.4.6.1
  2412 // See JSL 3rd edition 8.4.6.1
  2413 // Assumes name-signature match
  2413 // Assumes name-signature match
  2414 // "this" is InstanceKlass of super_method which must exist
  2414 // "this" is InstanceKlass of super_method which must exist
  2415 // note that the InstanceKlass of the method in the targetclassname has not always been created yet
  2415 // note that the InstanceKlass of the method in the targetclassname has not always been created yet
  2416 bool InstanceKlass::is_override(methodHandle super_method, Handle targetclassloader, Symbol* targetclassname, TRAPS) {
  2416 bool InstanceKlass::is_override(const methodHandle& super_method, Handle targetclassloader, Symbol* targetclassname, TRAPS) {
  2417    // Private methods can not be overridden
  2417    // Private methods can not be overridden
  2418    if (super_method->is_private()) {
  2418    if (super_method->is_private()) {
  2419      return false;
  2419      return false;
  2420    }
  2420    }
  2421    // If super method is accessible, then override
  2421    // If super method is accessible, then override