14 *
15 * You should have received a copy of the GNU General Public License version
16 * 2 along with this work; if not, write to the Free Software Foundation,
17 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
18 *
19 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
20 * or visit www.oracle.com if you need additional information or have any
21 * questions.
22 *
23 */
24
25 #ifndef SHARE_VM_OOPS_CONSTANTPOOLOOP_HPP
26 #define SHARE_VM_OOPS_CONSTANTPOOLOOP_HPP
27
28 #include "oops/arrayOop.hpp"
29 #include "oops/cpCache.hpp"
30 #include "oops/objArrayOop.hpp"
31 #include "oops/symbol.hpp"
32 #include "oops/typeArrayOop.hpp"
33 #include "runtime/handles.hpp"
34 #include "utilities/bytes.hpp"
35 #include "utilities/constantTag.hpp"
36
37 // A ConstantPool is an array containing class constants as described in the
38 // class file.
39 //
40 // Most of the constant pool entries are written during class parsing, which
41 // is safe. For klass types, the constant pool entry is
42 // modified when the entry is resolved. If a klass constant pool
43 // entry is read without a lock, only the resolved state guarantees that
44 // the entry in the constant pool is a klass object and not a Symbol*.
45
46 class SymbolHashMap;
47
48 class CPSlot VALUE_OBJ_CLASS_SPEC {
49 friend class ConstantPool;
50 intptr_t _ptr;
51 enum TagBits {_pseudo_bit = 1};
52 public:
53
|
14 *
15 * You should have received a copy of the GNU General Public License version
16 * 2 along with this work; if not, write to the Free Software Foundation,
17 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
18 *
19 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
20 * or visit www.oracle.com if you need additional information or have any
21 * questions.
22 *
23 */
24
25 #ifndef SHARE_VM_OOPS_CONSTANTPOOLOOP_HPP
26 #define SHARE_VM_OOPS_CONSTANTPOOLOOP_HPP
27
28 #include "oops/arrayOop.hpp"
29 #include "oops/cpCache.hpp"
30 #include "oops/objArrayOop.hpp"
31 #include "oops/symbol.hpp"
32 #include "oops/typeArrayOop.hpp"
33 #include "runtime/handles.hpp"
34 #include "utilities/align.hpp"
35 #include "utilities/bytes.hpp"
36 #include "utilities/constantTag.hpp"
37
38 // A ConstantPool is an array containing class constants as described in the
39 // class file.
40 //
41 // Most of the constant pool entries are written during class parsing, which
42 // is safe. For klass types, the constant pool entry is
43 // modified when the entry is resolved. If a klass constant pool
44 // entry is read without a lock, only the resolved state guarantees that
45 // the entry in the constant pool is a klass object and not a Symbol*.
46
47 class SymbolHashMap;
48
49 class CPSlot VALUE_OBJ_CLASS_SPEC {
50 friend class ConstantPool;
51 intptr_t _ptr;
52 enum TagBits {_pseudo_bit = 1};
53 public:
54
|