Fri, 14 Mar 2014 22:57:00 -0700
Merge
1.1 --- a/.hgtags Wed Mar 12 14:10:31 2014 -0700 1.2 +++ b/.hgtags Fri Mar 14 22:57:00 2014 -0700 1.3 @@ -420,6 +420,22 @@ 1.4 35038da7bb9ddd367a0a6bf926dfb281aee1d554 jdk8-b127 1.5 874c0b4a946c362bbf20d37c2a564b39093152e6 jdk8-b128 1.6 cb39165c4a65bbff8db356df411e762f9e5423b8 jdk8-b129 1.7 +1dbaf664a611e5d9cab6d1be42537b67d0d05f94 jdk8-b130 1.8 +b5e7ebfe185cb4c2eeb8a919025fc6a26be2fcef jdk8-b131 1.9 +9f9179e8f0cfe74c08f3716cf3c38e21e1de4c4a hs25-b70 1.10 +0c94c41dcd70e9a9b4d96e31275afd5a73daa72d jdk8-b132 1.11 +4a35ef38e2a7bc64df20c7700ba69b37e3ddb8b5 jdk8u5-b01 1.12 +e5561d89fe8bfc79cd6c8fcc36d270cc6a49ec6e jdk8u5-b02 1.13 +2f9eb9fcab6c42c8c84ddb44170ea33235116d84 jdk8u5-b03 1.14 +5ac720d47ab83f8eb2f5fe3641667823a0298f41 jdk8u5-b04 1.15 +b90de55aca30678ab0fec05d6a61bb3468b783d2 jdk8u5-b05 1.16 +956c0e048ef29ee9a8026fb05858abe64b4e0ceb jdk8u5-b06 1.17 +46fa2940e6861df18a107b6b83a2df85239e5ec7 jdk8u5-b07 1.18 +21c1dfbed277791071947eed1c93806ccf48a7d8 jdk8u5-b08 1.19 +6af9ce1c56a6545ec6c992a5f61b2eec924be040 jdk8u5-b09 1.20 +629267e4f0b5155608edcd71922983be98786bd7 jdk8u5-b10 1.21 +17a75e692af397532e2b296b24f6b9b6c239c633 jdk8u5-b11 1.22 +9b289963cb9a14636fbe8faaa2dd6d3678464a7b jdk8u5-b12 1.23 412d3b5fe90e54c0ff9d9ac7374b98607c561d5a hs25.20-b01 1.24 4638c4d7ff106db0f29ef7f18b128dd7e69bc470 hs25.20-b02 1.25 e56d11f8cc2158d4280f80e56d196193349c150a hs25.20-b03
2.1 --- a/THIRD_PARTY_README Wed Mar 12 14:10:31 2014 -0700 2.2 +++ b/THIRD_PARTY_README Fri Mar 14 22:57:00 2014 -0700 2.3 @@ -1399,13 +1399,13 @@ 2.4 2.5 ------------------------------------------------------------------------------- 2.6 2.7 -%% This notice is provided with respect to Little CMS 2.4, which may be 2.8 +%% This notice is provided with respect to Little CMS 2.5, which may be 2.9 included with JRE 8, JDK 8, and OpenJDK 8. 2.10 2.11 --- begin of LICENSE --- 2.12 2.13 Little CMS 2.14 -Copyright (c) 1998-2010 Marti Maria Saguer 2.15 +Copyright (c) 1998-2011 Marti Maria Saguer 2.16 2.17 Permission is hereby granted, free of charge, to any person obtaining a copy 2.18 of this software and associated documentation files (the "Software"), to deal
3.1 --- a/src/share/vm/ci/ciMethod.cpp Wed Mar 12 14:10:31 2014 -0700 3.2 +++ b/src/share/vm/ci/ciMethod.cpp Fri Mar 14 22:57:00 2014 -0700 3.3 @@ -724,6 +724,11 @@ 3.4 3.5 VM_ENTRY_MARK; 3.6 3.7 + // Disable CHA for default methods for now 3.8 + if (root_m->get_Method()->is_default_method()) { 3.9 + return NULL; 3.10 + } 3.11 + 3.12 methodHandle target; 3.13 { 3.14 MutexLocker locker(Compile_lock);
4.1 --- a/src/share/vm/classfile/classFileParser.cpp Wed Mar 12 14:10:31 2014 -0700 4.2 +++ b/src/share/vm/classfile/classFileParser.cpp Fri Mar 14 22:57:00 2014 -0700 4.3 @@ -2777,6 +2777,11 @@ 4.4 "Short length on BootstrapMethods in class file %s", 4.5 CHECK); 4.6 4.7 + guarantee_property(attribute_byte_length > sizeof(u2), 4.8 + "Invalid BootstrapMethods attribute length %u in class file %s", 4.9 + attribute_byte_length, 4.10 + CHECK); 4.11 + 4.12 // The attribute contains a counted array of counted tuples of shorts, 4.13 // represending bootstrap specifiers: 4.14 // length*{bootstrap_method_index, argument_count*{argument_index}}
5.1 --- a/src/share/vm/oops/objArrayKlass.cpp Wed Mar 12 14:10:31 2014 -0700 5.2 +++ b/src/share/vm/oops/objArrayKlass.cpp Fri Mar 14 22:57:00 2014 -0700 5.3 @@ -269,7 +269,7 @@ 5.4 if (element_is_null || 5.5 (new_val->klass())->is_subtype_of(bound)) { 5.6 bs->write_ref_field_pre(p, new_val); 5.7 - *p = *from; 5.8 + *p = element; 5.9 } else { 5.10 // We must do a barrier to cover the partial copy. 5.11 const size_t pd = pointer_delta(p, dst, (size_t)heapOopSize);
6.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 6.2 +++ b/test/compiler/inlining/InlineDefaultMethod1.java Fri Mar 14 22:57:00 2014 -0700 6.3 @@ -0,0 +1,58 @@ 6.4 +/* 6.5 + * Copyright (c) 2014, Oracle and/or its affiliates. All rights reserved. 6.6 + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 6.7 + * 6.8 + * This code is free software; you can redistribute it and/or modify it 6.9 + * under the terms of the GNU General Public License version 2 only, as 6.10 + * published by the Free Software Foundation. 6.11 + * 6.12 + * This code is distributed in the hope that it will be useful, but WITHOUT 6.13 + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or 6.14 + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License 6.15 + * version 2 for more details (a copy is included in the LICENSE file that 6.16 + * accompanied this code). 6.17 + * 6.18 + * You should have received a copy of the GNU General Public License version 6.19 + * 2 along with this work; if not, write to the Free Software Foundation, 6.20 + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. 6.21 + * 6.22 + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA 6.23 + * or visit www.oracle.com if you need additional information or have any 6.24 + * questions. 6.25 + */ 6.26 + 6.27 +/* 6.28 + * @test 6.29 + * @bug 8036100 6.30 + * @summary Default method returns true for a while, and then returns false 6.31 + * @run main/othervm -Xcomp -XX:CompileOnly=InlineDefaultMethod1::test 6.32 + * -XX:CompileOnly=I1::m -XX:CompileOnly=I2::m 6.33 + * InlineDefaultMethod1 6.34 + */ 6.35 +interface I1 { 6.36 + default public int m() { return 0; } 6.37 +} 6.38 + 6.39 +interface I2 extends I1 { 6.40 + default public int m() { return 1; } 6.41 +} 6.42 + 6.43 +abstract class A implements I1 { 6.44 +} 6.45 + 6.46 +class B extends A implements I2 { 6.47 +} 6.48 + 6.49 +public class InlineDefaultMethod1 { 6.50 + public static void test(A obj) { 6.51 + int id = obj.m(); 6.52 + if (id != 1) { 6.53 + throw new AssertionError("Called wrong method: 1 != "+id); 6.54 + } 6.55 + } 6.56 + 6.57 + public static void main(String[] args) throws InterruptedException { 6.58 + test(new B()); 6.59 + System.out.println("TEST PASSED"); 6.60 + } 6.61 +}