comparison src/share/vm/oops/klassOop.hpp @ 2376:c7f3d0b4570f

7017732: move static fields into Class to prepare for perm gen removal Reviewed-by: kvn, coleenp, twisti, stefank
author never
date Fri, 18 Mar 2011 16:00:34 -0700
parents f95d63e2154a
children b0efc7ee3b31
comparison
equal deleted inserted replaced
2375:d673ef06fe96 2376:c7f3d0b4570f
1 /* 1 /*
2 * Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved. 2 * Copyright (c) 1997, 2011, 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.
43 43
44 // support for code generation 44 // support for code generation
45 static int klass_part_offset_in_bytes() { return sizeof(klassOopDesc); } 45 static int klass_part_offset_in_bytes() { return sizeof(klassOopDesc); }
46 46
47 // returns the Klass part containing dispatching behavior 47 // returns the Klass part containing dispatching behavior
48 Klass* klass_part() { return (Klass*)((address)this + klass_part_offset_in_bytes()); } 48 Klass* klass_part() const { return (Klass*)((address)this + klass_part_offset_in_bytes()); }
49
50 // Convenience wrapper
51 inline oop java_mirror() const;
52
53 private:
54 // These have no implementation since klassOop should never be accessed in this fashion
55 oop obj_field(int offset) const;
56 void obj_field_put(int offset, oop value);
57 void obj_field_raw_put(int offset, oop value);
58
59 jbyte byte_field(int offset) const;
60 void byte_field_put(int offset, jbyte contents);
61
62 jchar char_field(int offset) const;
63 void char_field_put(int offset, jchar contents);
64
65 jboolean bool_field(int offset) const;
66 void bool_field_put(int offset, jboolean contents);
67
68 jint int_field(int offset) const;
69 void int_field_put(int offset, jint contents);
70
71 jshort short_field(int offset) const;
72 void short_field_put(int offset, jshort contents);
73
74 jlong long_field(int offset) const;
75 void long_field_put(int offset, jlong contents);
76
77 jfloat float_field(int offset) const;
78 void float_field_put(int offset, jfloat contents);
79
80 jdouble double_field(int offset) const;
81 void double_field_put(int offset, jdouble contents);
82
83 address address_field(int offset) const;
84 void address_field_put(int offset, address contents);
85
86 oop obj_field_acquire(int offset) const;
87 void release_obj_field_put(int offset, oop value);
88
89 jbyte byte_field_acquire(int offset) const;
90 void release_byte_field_put(int offset, jbyte contents);
91
92 jchar char_field_acquire(int offset) const;
93 void release_char_field_put(int offset, jchar contents);
94
95 jboolean bool_field_acquire(int offset) const;
96 void release_bool_field_put(int offset, jboolean contents);
97
98 jint int_field_acquire(int offset) const;
99 void release_int_field_put(int offset, jint contents);
100
101 jshort short_field_acquire(int offset) const;
102 void release_short_field_put(int offset, jshort contents);
103
104 jlong long_field_acquire(int offset) const;
105 void release_long_field_put(int offset, jlong contents);
106
107 jfloat float_field_acquire(int offset) const;
108 void release_float_field_put(int offset, jfloat contents);
109
110 jdouble double_field_acquire(int offset) const;
111 void release_double_field_put(int offset, jdouble contents);
112
113 address address_field_acquire(int offset) const;
114 void release_address_field_put(int offset, address contents);
49 }; 115 };
50 116
51 #endif // SHARE_VM_OOPS_KLASSOOP_HPP 117 #endif // SHARE_VM_OOPS_KLASSOOP_HPP