src/share/vm/classfile/javaClasses.cpp
Index Unified diffs Context diffs Sdiffs Patch New Old Previous File Next File
*** old/src/share/vm/classfile/javaClasses.cpp	Tue Aug 30 18:43:05 2011
--- new/src/share/vm/classfile/javaClasses.cpp	Tue Aug 30 18:43:05 2011

*** 2321,2330 **** --- 2321,2332 ---- int java_lang_invoke_BoundMethodHandle::_argument_offset; int java_lang_invoke_BoundMethodHandle::_vmargslot_offset; int java_lang_invoke_AdapterMethodHandle::_conversion_offset; + int java_lang_invoke_CountingMethodHandle::_vmcount_offset; + void java_lang_invoke_MethodHandle::compute_offsets() { klassOop k = SystemDictionary::MethodHandle_klass(); if (k != NULL && EnableInvokeDynamic) { bool allow_super = false; compute_offset(_type_offset, k, vmSymbols::type_name(), vmSymbols::java_lang_invoke_MethodType_signature(), allow_super);
*** 2369,2378 **** --- 2371,2397 ---- if (k != NULL && EnableInvokeDynamic) { compute_offset(_conversion_offset, k, vmSymbols::conversion_name(), vmSymbols::int_signature(), true); } } + void java_lang_invoke_CountingMethodHandle::compute_offsets() { + klassOop k = SystemDictionary::CountingMethodHandle_klass(); + if (k != NULL && EnableInvokeDynamic) { + compute_offset(_vmcount_offset, k, vmSymbols::vmcount_name(), vmSymbols::int_signature(), true); + } + } + + int java_lang_invoke_CountingMethodHandle::vmcount(oop mh) { + assert(is_instance(mh), "CMH only"); + return mh->int_field(_vmcount_offset); + } + + void java_lang_invoke_CountingMethodHandle::set_vmcount(oop mh, int count) { + assert(is_instance(mh), "CMH only"); + mh->int_field_put(_vmcount_offset, count); + } + oop java_lang_invoke_MethodHandle::type(oop mh) { return mh->obj_field(_type_offset); } void java_lang_invoke_MethodHandle::set_type(oop mh, oop mtype) {
*** 3029,3038 **** --- 3048,3058 ---- java_lang_invoke_BoundMethodHandle::compute_offsets(); java_lang_invoke_AdapterMethodHandle::compute_offsets(); java_lang_invoke_MethodType::compute_offsets(); java_lang_invoke_MethodTypeForm::compute_offsets(); java_lang_invoke_CallSite::compute_offsets(); + java_lang_invoke_CountingMethodHandle::compute_offsets(); } java_security_AccessControlContext::compute_offsets(); // Initialize reflection classes. The layouts of these classes // changed with the new reflection implementation in JDK 1.4, and // since the Universe doesn't know what JDK version it is until this

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