Tue, 03 Jun 2014 21:36:53 -0700
Merge
1.1 --- a/make/hotspot_version Tue Jun 03 07:29:16 2014 -0700 1.2 +++ b/make/hotspot_version Tue Jun 03 21:36:53 2014 -0700 1.3 @@ -34,8 +34,8 @@ 1.4 HOTSPOT_VM_COPYRIGHT=Copyright 2014 1.5 1.6 HS_MAJOR_VER=25 1.7 -HS_MINOR_VER=20 1.8 -HS_BUILD_NUMBER=16 1.9 +HS_MINOR_VER=25 1.10 +HS_BUILD_NUMBER=01 1.11 1.12 JDK_MAJOR_VER=1 1.13 JDK_MINOR_VER=8
2.1 --- a/src/share/vm/classfile/classFileParser.cpp Tue Jun 03 07:29:16 2014 -0700 2.2 +++ b/src/share/vm/classfile/classFileParser.cpp Tue Jun 03 21:36:53 2014 -0700 2.3 @@ -2831,6 +2831,11 @@ 2.4 "bootstrap_method_index %u has bad constant type in class file %s", 2.5 bootstrap_method_index, 2.6 CHECK); 2.7 + 2.8 + guarantee_property((operand_fill_index + 1 + argument_count) < operands->length(), 2.9 + "Invalid BootstrapMethods num_bootstrap_methods or num_bootstrap_arguments value in class file %s", 2.10 + CHECK); 2.11 + 2.12 operands->at_put(operand_fill_index++, bootstrap_method_index); 2.13 operands->at_put(operand_fill_index++, argument_count); 2.14 2.15 @@ -2848,7 +2853,6 @@ 2.16 } 2.17 2.18 assert(operand_fill_index == operands->length(), "exact fill"); 2.19 - assert(ConstantPool::operand_array_length(operands) == attribute_array_length, "correct decode"); 2.20 2.21 u1* current_end = cfs->current(); 2.22 guarantee_property(current_end == current_start + attribute_byte_length,
3.1 --- a/src/share/vm/classfile/verifier.cpp Tue Jun 03 07:29:16 2014 -0700 3.2 +++ b/src/share/vm/classfile/verifier.cpp Tue Jun 03 21:36:53 2014 -0700 3.3 @@ -2315,7 +2315,7 @@ 3.4 instanceKlassHandle mh(THREAD, m->method_holder()); 3.5 if (m->is_protected() && !mh->is_same_class_package(_klass())) { 3.6 bool assignable = current_type().is_assignable_from( 3.7 - objectref_type, this, CHECK_VERIFY(this)); 3.8 + objectref_type, this, true, CHECK_VERIFY(this)); 3.9 if (!assignable) { 3.10 verify_error(ErrorContext::bad_type(bci, 3.11 TypeOrigin::cp(new_class_index, objectref_type),