Mercurial > hg > truffle
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( |