src/share/vm/classfile/javaClasses.cpp
Index Unified diffs Context diffs Sdiffs Wdiffs Patch New Old Previous File Next File 7090259 Sdiff src/share/vm/classfile

src/share/vm/classfile/javaClasses.cpp

Print this page




2677 }
2678 
2679 
2680 // Support for java_lang_invoke_CallSite
2681 
2682 int java_lang_invoke_CallSite::_target_offset;
2683 
2684 void java_lang_invoke_CallSite::compute_offsets() {
2685   if (!EnableInvokeDynamic)  return;
2686   klassOop k = SystemDictionary::CallSite_klass();
2687   if (k != NULL) {
2688     compute_offset(_target_offset, k, vmSymbols::target_name(), vmSymbols::java_lang_invoke_MethodHandle_signature());
2689   }
2690 
2691   // Disallow compilation of CallSite.setTargetNormal and CallSite.setTargetVolatile
2692   // (For C2:  keep this until we have throttling logic for uncommon traps.)
2693   if (k != NULL) {
2694     instanceKlass* ik = instanceKlass::cast(k);
2695     methodOop m_normal   = ik->lookup_method(vmSymbols::setTargetNormal_name(),   vmSymbols::setTarget_signature());
2696     methodOop m_volatile = ik->lookup_method(vmSymbols::setTargetVolatile_name(), vmSymbols::setTarget_signature());
2697     guarantee(m_normal && m_volatile, "must exist");
2698     m_normal->set_not_compilable_quietly();
2699     m_volatile->set_not_compilable_quietly();
2700   }
2701 }
2702 
2703 
2704 // Support for java_security_AccessControlContext
2705 
2706 int java_security_AccessControlContext::_context_offset = 0;
2707 int java_security_AccessControlContext::_privilegedContext_offset = 0;
2708 int java_security_AccessControlContext::_isPrivileged_offset = 0;
2709 
2710 void java_security_AccessControlContext::compute_offsets() {
2711   assert(_isPrivileged_offset == 0, "offsets should be initialized only once");
2712   fieldDescriptor fd;
2713   instanceKlass* ik = instanceKlass::cast(SystemDictionary::AccessControlContext_klass());
2714 
2715   if (!ik->find_local_field(vmSymbols::context_name(), vmSymbols::protectiondomain_signature(), &fd)) {
2716     fatal("Invalid layout of java.security.AccessControlContext");
2717   }




2677 }
2678 
2679 
2680 // Support for java_lang_invoke_CallSite
2681 
2682 int java_lang_invoke_CallSite::_target_offset;
2683 
2684 void java_lang_invoke_CallSite::compute_offsets() {
2685   if (!EnableInvokeDynamic)  return;
2686   klassOop k = SystemDictionary::CallSite_klass();
2687   if (k != NULL) {
2688     compute_offset(_target_offset, k, vmSymbols::target_name(), vmSymbols::java_lang_invoke_MethodHandle_signature());
2689   }
2690 
2691   // Disallow compilation of CallSite.setTargetNormal and CallSite.setTargetVolatile
2692   // (For C2:  keep this until we have throttling logic for uncommon traps.)
2693   if (k != NULL) {
2694     instanceKlass* ik = instanceKlass::cast(k);
2695     methodOop m_normal   = ik->lookup_method(vmSymbols::setTargetNormal_name(),   vmSymbols::setTarget_signature());
2696     methodOop m_volatile = ik->lookup_method(vmSymbols::setTargetVolatile_name(), vmSymbols::setTarget_signature());
2697     guarantee(m_normal != NULL && m_volatile != NULL, "must exist");
2698     m_normal->set_not_compilable_quietly();
2699     m_volatile->set_not_compilable_quietly();
2700   }
2701 }
2702 
2703 
2704 // Support for java_security_AccessControlContext
2705 
2706 int java_security_AccessControlContext::_context_offset = 0;
2707 int java_security_AccessControlContext::_privilegedContext_offset = 0;
2708 int java_security_AccessControlContext::_isPrivileged_offset = 0;
2709 
2710 void java_security_AccessControlContext::compute_offsets() {
2711   assert(_isPrivileged_offset == 0, "offsets should be initialized only once");
2712   fieldDescriptor fd;
2713   instanceKlass* ik = instanceKlass::cast(SystemDictionary::AccessControlContext_klass());
2714 
2715   if (!ik->find_local_field(vmSymbols::context_name(), vmSymbols::protectiondomain_signature(), &fd)) {
2716     fatal("Invalid layout of java.security.AccessControlContext");
2717   }


src/share/vm/classfile/javaClasses.cpp
Index Unified diffs Context diffs Sdiffs Wdiffs Patch New Old Previous File Next File