src/share/vm/classfile/verifier.hpp
Index
Unified diffs
Context diffs
Sdiffs
Wdiffs
Patch
New
Old
Previous File
Next File
*** old/src/share/vm/classfile/verifier.hpp Tue Jul 29 09:17:48 2014
--- new/src/share/vm/classfile/verifier.hpp Tue Jul 29 09:17:45 2014
*** 28,37 ****
--- 28,38 ----
#include "classfile/verificationType.hpp"
#include "memory/gcLocker.hpp"
#include "oops/klass.hpp"
#include "oops/method.hpp"
#include "runtime/handles.hpp"
+ #include "utilities/growableArray.hpp"
#include "utilities/exceptions.hpp"
// The verifier class
class Verifier : AllStatic {
public:
*** 304,313 ****
--- 305,340 ----
void verify_invoke_init(
RawBytecodeStream* bcs, u2 ref_index, VerificationType ref_class_type,
StackMapFrame* current_frame, u4 code_length, bool* this_uninit,
constantPoolHandle cp, TRAPS);
+ // Used by ends_in_athrow() to save bytecode intervals.
+ void push_bci_offsets(GrowableArray<u4> *bci_stack_ptr,
+ u4 start_offset, u4 end_offset) {
+ bci_stack_ptr->push(start_offset);
+ bci_stack_ptr->push(end_offset);
+ }
+
+ // Used by ends_in_athrow() to retrieve start of saved bytecode interval.
+ u4 pop_bci_start_offset(GrowableArray<u4> *bci_stack_ptr) {
+ assert(!bci_stack_ptr->is_empty(), "Stack should not be empty");
+ assert(bci_stack_ptr->length() % 2 == 1,
+ "Stack should have odd number of entries");
+ return bci_stack_ptr->pop();
+ }
+
+ // Used by ends_in_athrow() to retrieve end of saved bytecode interval.
+ u4 pop_bci_end_offset(GrowableArray<u4> *bci_stack_ptr) {
+ assert(!bci_stack_ptr->is_empty(), "Stack should not be empty");
+ assert(bci_stack_ptr->length() % 2 == 0,
+ "Stack should have even number of entries");
+ return bci_stack_ptr->pop();
+ }
+
+ // Returns true if all paths thru the specified bytecode stream end in athrow.
+ bool ends_in_athrow(u4 start_bc_offset, u4 end_bc_offset);
+
void verify_invoke_instructions(
RawBytecodeStream* bcs, u4 code_length, StackMapFrame* current_frame,
bool* this_uninit, VerificationType return_type,
constantPoolHandle cp, TRAPS);
src/share/vm/classfile/verifier.hpp
Index
Unified diffs
Context diffs
Sdiffs
Wdiffs
Patch
New
Old
Previous File
Next File