comparison src/share/vm/classfile/verifier.cpp @ 134:8a79f7ec8f5d

6692246: Regression : JDK 6u4 b01 fails two JCK tests when fallback is switched off Summary: Added a clause to allow null to be an operand to the arraylength bytecode Reviewed-by: sbohne, coleenp
author kamg
date Tue, 29 Apr 2008 11:21:51 -0400
parents a61af66fc99e
children d1605aabd0a1
comparison
equal deleted inserted replaced
133:435e64505015 134:8a79f7ec8f5d
1203 bcs.get_index_big(), cp, &current_frame, CHECK_VERIFY(this)); 1203 bcs.get_index_big(), cp, &current_frame, CHECK_VERIFY(this));
1204 no_control_flow = false; break; 1204 no_control_flow = false; break;
1205 case Bytecodes::_arraylength : 1205 case Bytecodes::_arraylength :
1206 type = current_frame.pop_stack( 1206 type = current_frame.pop_stack(
1207 VerificationType::reference_check(), CHECK_VERIFY(this)); 1207 VerificationType::reference_check(), CHECK_VERIFY(this));
1208 if (!type.is_array()) { 1208 if (!(type.is_null() || type.is_array())) {
1209 verify_error(bci, bad_type_msg, "arraylength"); 1209 verify_error(bci, bad_type_msg, "arraylength");
1210 } 1210 }
1211 current_frame.push_stack( 1211 current_frame.push_stack(
1212 VerificationType::integer_type(), CHECK_VERIFY(this)); 1212 VerificationType::integer_type(), CHECK_VERIFY(this));
1213 no_control_flow = false; break; 1213 no_control_flow = false; break;