Mercurial > hg > icedtea8-forest > hotspot
changeset 9990:5c1f180db165 jdk8u172-b08
Merge
author | asaha |
---|---|
date | Tue, 27 Feb 2018 11:36:15 -0800 |
parents | 3ff20f44b8d1 (current diff) 4fefe015a728 (diff) |
children | 8e75ba18e9f3 |
files | .hgtags |
diffstat | 4 files changed, 38 insertions(+), 3 deletions(-) [+] |
line wrap: on
line diff
--- a/.hgtags Tue Feb 20 13:11:03 2018 -0800 +++ b/.hgtags Tue Feb 27 11:36:15 2018 -0800 @@ -1139,6 +1139,7 @@ 08326a76b14888908523cf2bb1105de63b43544d jdk8u171-b05 4e1445535b6d9c25ed34aba2768139da283847d0 jdk8u171-b06 fd0e42431b94c889b3fea8d8aad048f51d559761 jdk8u171-b07 +56123fdca84a3b253b8ea6f72be85bd2ebf39fd0 jdk8u171-b08 f299cf0b7baea1ae85f139f97adb9ab5499f402a jdk8u172-b00 d10254debf7c1342416062bf1ba5258f16a8ce00 jdk8u172-b01 653d9e0cd3f4023675c9eece7f0d563287f1d34f jdk8u172-b02
--- a/src/cpu/zero/vm/methodHandles_zero.cpp Tue Feb 20 13:11:03 2018 -0800 +++ b/src/cpu/zero/vm/methodHandles_zero.cpp Tue Feb 27 11:36:15 2018 -0800 @@ -180,3 +180,9 @@ return NULL; } } + +#ifndef PRODUCT +void MethodHandles::trace_method_handle(MacroAssembler* _masm, const char* adaptername) { + // This is just a stub. +} +#endif //PRODUCT
--- a/src/share/vm/interpreter/bytecodeInterpreter.cpp Tue Feb 20 13:11:03 2018 -0800 +++ b/src/share/vm/interpreter/bytecodeInterpreter.cpp Tue Feb 27 11:36:15 2018 -0800 @@ -2569,13 +2569,35 @@ // this could definitely be cleaned up QQQ Method* callee; - Klass* iclass = cache->f1_as_klass(); - // InstanceKlass* interface = (InstanceKlass*) iclass; + Method *interface_method = cache->f2_as_interface_method(); + InstanceKlass* iclass = interface_method->method_holder(); + // get receiver int parms = cache->parameter_size(); oop rcvr = STACK_OBJECT(-parms); CHECK_NULL(rcvr); 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(); int i; for ( i = 0 ; i < int2->itable_length() ; i++, ki++ ) { @@ -2587,7 +2609,8 @@ if (i == int2->itable_length()) { 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()); callee = im[mindex].method(); if (callee == NULL) {
--- a/test/gc/metaspace/CompressedClassSpaceSizeInJmapHeap.java Tue Feb 20 13:11:03 2018 -0800 +++ b/test/gc/metaspace/CompressedClassSpaceSizeInJmapHeap.java Tue Feb 27 11:36:15 2018 -0800 @@ -37,6 +37,11 @@ public class CompressedClassSpaceSizeInJmapHeap { 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()); JDKToolLauncher jmap = JDKToolLauncher.create("jmap")