hotspot/src/share/vm/classfile/verifier.cpp
changeset 40887 8d35e19f5548
parent 40856 3378947a95e6
child 40923 10fe1c28b9f6
equal deleted inserted replaced
40886:98cb935dc074 40887:8d35e19f5548
    65 static void* volatile _verify_byte_codes_fn = NULL;
    65 static void* volatile _verify_byte_codes_fn = NULL;
    66 
    66 
    67 static volatile jint _is_new_verify_byte_codes_fn = (jint) true;
    67 static volatile jint _is_new_verify_byte_codes_fn = (jint) true;
    68 
    68 
    69 static void* verify_byte_codes_fn() {
    69 static void* verify_byte_codes_fn() {
    70   if (_verify_byte_codes_fn == NULL) {
    70   if (OrderAccess::load_ptr_acquire(&_verify_byte_codes_fn) == NULL) {
    71     void *lib_handle = os::native_java_library();
    71     void *lib_handle = os::native_java_library();
    72     void *func = os::dll_lookup(lib_handle, "VerifyClassCodesForMajorVersion");
    72     void *func = os::dll_lookup(lib_handle, "VerifyClassCodesForMajorVersion");
    73     OrderAccess::release_store_ptr(&_verify_byte_codes_fn, func);
    73     OrderAccess::release_store_ptr(&_verify_byte_codes_fn, func);
    74     if (func == NULL) {
    74     if (func == NULL) {
    75       OrderAccess::release_store(&_is_new_verify_byte_codes_fn, false);
    75       _is_new_verify_byte_codes_fn = false;
    76       func = os::dll_lookup(lib_handle, "VerifyClassCodes");
    76       func = os::dll_lookup(lib_handle, "VerifyClassCodes");
    77       OrderAccess::release_store_ptr(&_verify_byte_codes_fn, func);
    77       OrderAccess::release_store_ptr(&_verify_byte_codes_fn, func);
    78     }
    78     }
    79   }
    79   }
    80   return (void*)_verify_byte_codes_fn;
    80   return (void*)_verify_byte_codes_fn;