Mercurial > hg > graal-jvmci-8
comparison src/share/vm/classfile/verifier.hpp @ 20759:4b26b980ec8d
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 | 695017a614d5 |
comparison
equal
deleted
inserted
replaced
20758:6baea9ff2da1 | 20759:4b26b980ec8d |
---|---|
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( |