comparison src/share/vm/classfile/verifier.hpp @ 21814:5f07d936a14e

8058982: Better verification of an exceptional invokespecial Summary: Throw VerifyError for illegal accesses Reviewed-by: acorn, ahgross, coleenp
author hseigel
date Mon, 20 Oct 2014 15:14:56 -0400
parents 077483254bf6
children
comparison
equal deleted inserted replaced
21813:9c5134750f1d 21814:5f07d936a14e
299 RawBytecodeStream* bcs, StackMapFrame* current_frame, 299 RawBytecodeStream* bcs, StackMapFrame* current_frame,
300 constantPoolHandle cp, TRAPS); 300 constantPoolHandle cp, TRAPS);
301 301
302 void verify_invoke_init( 302 void verify_invoke_init(
303 RawBytecodeStream* bcs, u2 ref_index, VerificationType ref_class_type, 303 RawBytecodeStream* bcs, u2 ref_index, VerificationType ref_class_type,
304 StackMapFrame* current_frame, u4 code_length, bool* this_uninit, 304 StackMapFrame* current_frame, u4 code_length, bool in_try_block,
305 constantPoolHandle cp, TRAPS); 305 bool* this_uninit, constantPoolHandle cp, StackMapTable* stackmap_table,
306 TRAPS);
306 307
307 // Used by ends_in_athrow() to push all handlers that contain bci onto 308 // Used by ends_in_athrow() to push all handlers that contain bci onto
308 // the handler_stack, if the handler is not already on the stack. 309 // the handler_stack, if the handler is not already on the stack.
309 void push_handlers(ExceptionTable* exhandlers, 310 void push_handlers(ExceptionTable* exhandlers,
310 GrowableArray<u4>* handler_stack, 311 GrowableArray<u4>* handler_stack,
314 // bytecode or loop. 315 // bytecode or loop.
315 bool ends_in_athrow(u4 start_bc_offset); 316 bool ends_in_athrow(u4 start_bc_offset);
316 317
317 void verify_invoke_instructions( 318 void verify_invoke_instructions(
318 RawBytecodeStream* bcs, u4 code_length, StackMapFrame* current_frame, 319 RawBytecodeStream* bcs, u4 code_length, StackMapFrame* current_frame,
319 bool* this_uninit, VerificationType return_type, 320 bool in_try_block, bool* this_uninit, VerificationType return_type,
320 constantPoolHandle cp, TRAPS); 321 constantPoolHandle cp, StackMapTable* stackmap_table, TRAPS);
321 322
322 VerificationType get_newarray_type(u2 index, u2 bci, TRAPS); 323 VerificationType get_newarray_type(u2 index, u2 bci, TRAPS);
323 void verify_anewarray(u2 bci, u2 index, constantPoolHandle cp, 324 void verify_anewarray(u2 bci, u2 index, constantPoolHandle cp,
324 StackMapFrame* current_frame, TRAPS); 325 StackMapFrame* current_frame, TRAPS);
325 void verify_return_value( 326 void verify_return_value(