comparison src/share/vm/classfile/stackMapTable.hpp @ 6605:4ee06e614636

7116786: RFE: Detailed information on VerifyErrors Summary: Provide additional detail in VerifyError messages Reviewed-by: sspitsyn, acorn
author kamg
date Mon, 06 Aug 2012 15:54:45 -0400
parents 1d1603768966
children da91efe96a93
comparison
equal deleted inserted replaced
6604:c3c2141203e7 6605:4ee06e614636
1 /* 1 /*
2 * Copyright (c) 2003, 2011, Oracle and/or its affiliates. All rights reserved. 2 * Copyright (c) 2003, 2012, Oracle and/or its affiliates. All rights reserved.
3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
4 * 4 *
5 * This code is free software; you can redistribute it and/or modify it 5 * This code is free software; you can redistribute it and/or modify it
6 * under the terms of the GNU General Public License version 2 only, as 6 * under the terms of the GNU General Public License version 2 only, as
7 * published by the Free Software Foundation. 7 * published by the Free Software Foundation.
24 24
25 #ifndef SHARE_VM_CLASSFILE_STACKMAPTABLE_HPP 25 #ifndef SHARE_VM_CLASSFILE_STACKMAPTABLE_HPP
26 #define SHARE_VM_CLASSFILE_STACKMAPTABLE_HPP 26 #define SHARE_VM_CLASSFILE_STACKMAPTABLE_HPP
27 27
28 #include "classfile/stackMapFrame.hpp" 28 #include "classfile/stackMapFrame.hpp"
29 #include "classfile/verifier.hpp"
29 #include "memory/allocation.hpp" 30 #include "memory/allocation.hpp"
30 #include "oops/constantPoolOop.hpp" 31 #include "oops/constantPoolOop.hpp"
31 #include "oops/methodOop.hpp" 32 #include "oops/methodOop.hpp"
32 #include "utilities/globalDefinitions.hpp" 33 #include "utilities/globalDefinitions.hpp"
33 #ifdef TARGET_ARCH_x86 34 #ifdef TARGET_ARCH_x86
71 72
72 // Match and/or update current_frame to the frame in stackmap table with 73 // Match and/or update current_frame to the frame in stackmap table with
73 // specified offset. Return true if the two frames match. 74 // specified offset. Return true if the two frames match.
74 bool match_stackmap( 75 bool match_stackmap(
75 StackMapFrame* current_frame, int32_t offset, 76 StackMapFrame* current_frame, int32_t offset,
76 bool match, bool update, TRAPS) const; 77 bool match, bool update, ErrorContext* ctx, TRAPS) const;
77 // Match and/or update current_frame to the frame in stackmap table with 78 // Match and/or update current_frame to the frame in stackmap table with
78 // specified offset and frame index. Return true if the two frames match. 79 // specified offset and frame index. Return true if the two frames match.
79 bool match_stackmap( 80 bool match_stackmap(
80 StackMapFrame* current_frame, int32_t offset, int32_t frame_index, 81 StackMapFrame* current_frame, int32_t offset, int32_t frame_index,
81 bool match, bool update, TRAPS) const; 82 bool match, bool update, ErrorContext* ctx, TRAPS) const;
82 83
83 // Check jump instructions. Make sure there are no uninitialized 84 // Check jump instructions. Make sure there are no uninitialized
84 // instances on backward branch. 85 // instances on backward branch.
85 void check_jump_target(StackMapFrame* frame, int32_t target, TRAPS) const; 86 void check_jump_target(StackMapFrame* frame, int32_t target, TRAPS) const;
86 87
91 92
92 // Make sure that there's no uninitialized object exist on backward branch. 93 // Make sure that there's no uninitialized object exist on backward branch.
93 void check_new_object( 94 void check_new_object(
94 const StackMapFrame* frame, int32_t target, TRAPS) const; 95 const StackMapFrame* frame, int32_t target, TRAPS) const;
95 96
96 // Debugging 97 void print_on(outputStream* str) const;
97 void print() const PRODUCT_RETURN;
98 }; 98 };
99 99
100 class StackMapStream : StackObj { 100 class StackMapStream : StackObj {
101 private: 101 private:
102 typeArrayHandle _data; 102 typeArrayHandle _data;