src/hotspot/share/classfile/javaClasses.cpp
changeset 51698 74dde8b66b7f
parent 51674 d7dcaacb95dd
child 51796 9d3a00c8c047
equal deleted inserted replaced
51697:49e1b21d9878 51698:74dde8b66b7f
  4025 int  java_lang_ClassLoader::parallelCapable_offset = -1;
  4025 int  java_lang_ClassLoader::parallelCapable_offset = -1;
  4026 int  java_lang_ClassLoader::name_offset = -1;
  4026 int  java_lang_ClassLoader::name_offset = -1;
  4027 int  java_lang_ClassLoader::nameAndId_offset = -1;
  4027 int  java_lang_ClassLoader::nameAndId_offset = -1;
  4028 int  java_lang_ClassLoader::unnamedModule_offset = -1;
  4028 int  java_lang_ClassLoader::unnamedModule_offset = -1;
  4029 
  4029 
  4030 ClassLoaderData* java_lang_ClassLoader::loader_data(oop loader) {
  4030 ClassLoaderData* java_lang_ClassLoader::loader_data_acquire(oop loader) {
  4031   assert(loader != NULL && oopDesc::is_oop(loader), "loader must be oop");
  4031   assert(loader != NULL && oopDesc::is_oop(loader), "loader must be oop");
  4032   return HeapAccess<>::load_at(loader, _loader_data_offset);
  4032   return HeapAccess<MO_ACQUIRE>::load_at(loader, _loader_data_offset);
  4033 }
  4033 }
  4034 
  4034 
  4035 ClassLoaderData* java_lang_ClassLoader::loader_data_raw(oop loader) {
  4035 ClassLoaderData* java_lang_ClassLoader::loader_data_raw(oop loader) {
  4036   assert(loader != NULL && oopDesc::is_oop(loader), "loader must be oop");
  4036   assert(loader != NULL && oopDesc::is_oop(loader), "loader must be oop");
  4037   return RawAccess<>::load_at(loader, _loader_data_offset);
  4037   return RawAccess<>::load_at(loader, _loader_data_offset);
  4038 }
  4038 }
  4039 
  4039 
  4040 ClassLoaderData* java_lang_ClassLoader::cmpxchg_loader_data(ClassLoaderData* new_data, oop loader, ClassLoaderData* expected_data) {
  4040 void java_lang_ClassLoader::release_set_loader_data(oop loader, ClassLoaderData* new_data) {
  4041   assert(loader != NULL && oopDesc::is_oop(loader), "loader must be oop");
  4041   assert(loader != NULL && oopDesc::is_oop(loader), "loader must be oop");
  4042   return HeapAccess<>::atomic_cmpxchg_at(new_data, loader, _loader_data_offset, expected_data);
  4042   HeapAccess<MO_RELEASE>::store_at(loader, _loader_data_offset, new_data);
  4043 }
  4043 }
  4044 
  4044 
  4045 #define CLASSLOADER_FIELDS_DO(macro) \
  4045 #define CLASSLOADER_FIELDS_DO(macro) \
  4046   macro(parallelCapable_offset, k1, "parallelLockMap",      concurrenthashmap_signature, false); \
  4046   macro(parallelCapable_offset, k1, "parallelLockMap",      concurrenthashmap_signature, false); \
  4047   macro(name_offset,            k1, vmSymbols::name_name(), string_signature, false); \
  4047   macro(name_offset,            k1, vmSymbols::name_name(), string_signature, false); \