提交 37eb65df 编写于 作者: A asaha

Merge

...@@ -1139,6 +1139,7 @@ ebfd57cc21e6b7f0c22b17c666b6b28c9340e207 jdk8u171-b01 ...@@ -1139,6 +1139,7 @@ ebfd57cc21e6b7f0c22b17c666b6b28c9340e207 jdk8u171-b01
08326a76b14888908523cf2bb1105de63b43544d jdk8u171-b05 08326a76b14888908523cf2bb1105de63b43544d jdk8u171-b05
4e1445535b6d9c25ed34aba2768139da283847d0 jdk8u171-b06 4e1445535b6d9c25ed34aba2768139da283847d0 jdk8u171-b06
fd0e42431b94c889b3fea8d8aad048f51d559761 jdk8u171-b07 fd0e42431b94c889b3fea8d8aad048f51d559761 jdk8u171-b07
56123fdca84a3b253b8ea6f72be85bd2ebf39fd0 jdk8u171-b08
f299cf0b7baea1ae85f139f97adb9ab5499f402a jdk8u172-b00 f299cf0b7baea1ae85f139f97adb9ab5499f402a jdk8u172-b00
d10254debf7c1342416062bf1ba5258f16a8ce00 jdk8u172-b01 d10254debf7c1342416062bf1ba5258f16a8ce00 jdk8u172-b01
653d9e0cd3f4023675c9eece7f0d563287f1d34f jdk8u172-b02 653d9e0cd3f4023675c9eece7f0d563287f1d34f jdk8u172-b02
......
...@@ -180,3 +180,9 @@ address MethodHandles::generate_method_handle_interpreter_entry(MacroAssembler* ...@@ -180,3 +180,9 @@ address MethodHandles::generate_method_handle_interpreter_entry(MacroAssembler*
return NULL; return NULL;
} }
} }
#ifndef PRODUCT
void MethodHandles::trace_method_handle(MacroAssembler* _masm, const char* adaptername) {
// This is just a stub.
}
#endif //PRODUCT
...@@ -2569,13 +2569,35 @@ run: ...@@ -2569,13 +2569,35 @@ run:
// this could definitely be cleaned up QQQ // this could definitely be cleaned up QQQ
Method* callee; Method* callee;
Klass* iclass = cache->f1_as_klass(); Method *interface_method = cache->f2_as_interface_method();
// InstanceKlass* interface = (InstanceKlass*) iclass; InstanceKlass* iclass = interface_method->method_holder();
// get receiver // get receiver
int parms = cache->parameter_size(); int parms = cache->parameter_size();
oop rcvr = STACK_OBJECT(-parms); oop rcvr = STACK_OBJECT(-parms);
CHECK_NULL(rcvr); CHECK_NULL(rcvr);
InstanceKlass* int2 = (InstanceKlass*) rcvr->klass(); InstanceKlass* int2 = (InstanceKlass*) rcvr->klass();
// Receiver subtype check against resolved interface klass (REFC).
{
Klass* refc = cache->f1_as_klass();
itableOffsetEntry* scan;
for (scan = (itableOffsetEntry*) int2->start_of_itable();
scan->interface_klass() != NULL;
scan++) {
if (scan->interface_klass() == refc) {
break;
}
}
// Check that the entry is non-null. A null entry means
// that the receiver class doesn't implement the
// interface, and wasn't the same as when the caller was
// compiled.
if (scan->interface_klass() == NULL) {
VM_JAVA_ERROR(vmSymbols::java_lang_IncompatibleClassChangeError(), "", note_no_trap);
}
}
itableOffsetEntry* ki = (itableOffsetEntry*) int2->start_of_itable(); itableOffsetEntry* ki = (itableOffsetEntry*) int2->start_of_itable();
int i; int i;
for ( i = 0 ; i < int2->itable_length() ; i++, ki++ ) { for ( i = 0 ; i < int2->itable_length() ; i++, ki++ ) {
...@@ -2587,7 +2609,8 @@ run: ...@@ -2587,7 +2609,8 @@ run:
if (i == int2->itable_length()) { if (i == int2->itable_length()) {
VM_JAVA_ERROR(vmSymbols::java_lang_IncompatibleClassChangeError(), "", note_no_trap); VM_JAVA_ERROR(vmSymbols::java_lang_IncompatibleClassChangeError(), "", note_no_trap);
} }
int mindex = cache->f2_as_index(); int mindex = interface_method->itable_index();
itableMethodEntry* im = ki->first_method_entry(rcvr->klass()); itableMethodEntry* im = ki->first_method_entry(rcvr->klass());
callee = im[mindex].method(); callee = im[mindex].method();
if (callee == NULL) { if (callee == NULL) {
......
...@@ -37,6 +37,11 @@ import java.util.List; ...@@ -37,6 +37,11 @@ import java.util.List;
public class CompressedClassSpaceSizeInJmapHeap { public class CompressedClassSpaceSizeInJmapHeap {
public static void main(String[] args) throws Exception { public static void main(String[] args) throws Exception {
if (!Platform.shouldSAAttach()) {
System.out.println("SA attach not expected to work - test skipped.");
return;
}
String pid = Integer.toString(ProcessTools.getProcessId()); String pid = Integer.toString(ProcessTools.getProcessId());
JDKToolLauncher jmap = JDKToolLauncher.create("jmap") JDKToolLauncher jmap = JDKToolLauncher.create("jmap")
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册