comparison src/share/vm/classfile/verifier.hpp @ 22893:695017a614d5

8075118: JVM stuck in infinite loop during verification Summary: keep a list of handlers to prevent the same handler from being scanned repeatedly. Reviewed-by: dlong, dholmes
author hseigel
date Thu, 19 Mar 2015 08:55:50 -0400
parents 4b26b980ec8d
children
comparison
equal deleted inserted replaced
22892:951689652d2c 22893:695017a614d5
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 in_try_block, 304 StackMapFrame* current_frame, u4 code_length, bool in_try_block,
305 bool* this_uninit, constantPoolHandle cp, StackMapTable* stackmap_table, 305 bool* this_uninit, constantPoolHandle cp, StackMapTable* stackmap_table,
306 TRAPS); 306 TRAPS);
307 307
308 // 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 the
309 // the handler_stack, if the handler is not already on the stack. 309 // handler_stack, if the handler has not already been pushed on the stack.
310 void push_handlers(ExceptionTable* exhandlers, 310 void push_handlers(ExceptionTable* exhandlers,
311 GrowableArray<u4>* handler_list,
311 GrowableArray<u4>* handler_stack, 312 GrowableArray<u4>* handler_stack,
312 u4 bci); 313 u4 bci);
313 314
314 // Returns true if all paths starting with start_bc_offset end in athrow 315 // Returns true if all paths starting with start_bc_offset end in athrow
315 // bytecode or loop. 316 // bytecode or loop.