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