提交 74cc9b3c 编写于 作者: A asaha

Merge

...@@ -34,8 +34,8 @@ ...@@ -34,8 +34,8 @@
HOTSPOT_VM_COPYRIGHT=Copyright 2014 HOTSPOT_VM_COPYRIGHT=Copyright 2014
HS_MAJOR_VER=25 HS_MAJOR_VER=25
HS_MINOR_VER=20 HS_MINOR_VER=25
HS_BUILD_NUMBER=16 HS_BUILD_NUMBER=01
JDK_MAJOR_VER=1 JDK_MAJOR_VER=1
JDK_MINOR_VER=8 JDK_MINOR_VER=8
......
...@@ -2831,6 +2831,11 @@ void ClassFileParser::parse_classfile_bootstrap_methods_attribute(u4 attribute_b ...@@ -2831,6 +2831,11 @@ void ClassFileParser::parse_classfile_bootstrap_methods_attribute(u4 attribute_b
"bootstrap_method_index %u has bad constant type in class file %s", "bootstrap_method_index %u has bad constant type in class file %s",
bootstrap_method_index, bootstrap_method_index,
CHECK); CHECK);
guarantee_property((operand_fill_index + 1 + argument_count) < operands->length(),
"Invalid BootstrapMethods num_bootstrap_methods or num_bootstrap_arguments value in class file %s",
CHECK);
operands->at_put(operand_fill_index++, bootstrap_method_index); operands->at_put(operand_fill_index++, bootstrap_method_index);
operands->at_put(operand_fill_index++, argument_count); operands->at_put(operand_fill_index++, argument_count);
...@@ -2848,7 +2853,6 @@ void ClassFileParser::parse_classfile_bootstrap_methods_attribute(u4 attribute_b ...@@ -2848,7 +2853,6 @@ void ClassFileParser::parse_classfile_bootstrap_methods_attribute(u4 attribute_b
} }
assert(operand_fill_index == operands->length(), "exact fill"); assert(operand_fill_index == operands->length(), "exact fill");
assert(ConstantPool::operand_array_length(operands) == attribute_array_length, "correct decode");
u1* current_end = cfs->current(); u1* current_end = cfs->current();
guarantee_property(current_end == current_start + attribute_byte_length, guarantee_property(current_end == current_start + attribute_byte_length,
......
...@@ -2315,7 +2315,7 @@ void ClassVerifier::verify_invoke_init( ...@@ -2315,7 +2315,7 @@ void ClassVerifier::verify_invoke_init(
instanceKlassHandle mh(THREAD, m->method_holder()); instanceKlassHandle mh(THREAD, m->method_holder());
if (m->is_protected() && !mh->is_same_class_package(_klass())) { if (m->is_protected() && !mh->is_same_class_package(_klass())) {
bool assignable = current_type().is_assignable_from( bool assignable = current_type().is_assignable_from(
objectref_type, this, CHECK_VERIFY(this)); objectref_type, this, true, CHECK_VERIFY(this));
if (!assignable) { if (!assignable) {
verify_error(ErrorContext::bad_type(bci, verify_error(ErrorContext::bad_type(bci,
TypeOrigin::cp(new_class_index, objectref_type), TypeOrigin::cp(new_class_index, objectref_type),
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册