20 * or visit www.oracle.com if you need additional information or have any
21 * questions.
22 *
23 */
24
25 #ifndef SHARE_OOPS_INSTANCEOOP_HPP
26 #define SHARE_OOPS_INSTANCEOOP_HPP
27
28 #include "oops/oop.hpp"
29
30 // An instanceOop is an instance of a Java Class
31 // Evaluating "new HashTable()" will create an instanceOop.
32
33 class instanceOopDesc : public oopDesc {
34 public:
35 // aligned header size.
36 static int header_size() { return sizeof(instanceOopDesc)/HeapWordSize; }
37
38 // If compressed, the offset of the fields of the instance may not be aligned.
39 static int base_offset_in_bytes() {
40 if (UseNewFieldLayout) {
41 return (UseCompressedClassPointers) ?
42 klass_gap_offset_in_bytes() :
43 sizeof(instanceOopDesc);
44 } else {
45 // The old layout could not deal with compressed oops being off and compressed
46 // class pointers being off.
47 return (UseCompressedOops && UseCompressedClassPointers) ?
48 klass_gap_offset_in_bytes() :
49 sizeof(instanceOopDesc);
50 }
51 }
52 };
53
54 #endif // SHARE_OOPS_INSTANCEOOP_HPP
|
20 * or visit www.oracle.com if you need additional information or have any
21 * questions.
22 *
23 */
24
25 #ifndef SHARE_OOPS_INSTANCEOOP_HPP
26 #define SHARE_OOPS_INSTANCEOOP_HPP
27
28 #include "oops/oop.hpp"
29
30 // An instanceOop is an instance of a Java Class
31 // Evaluating "new HashTable()" will create an instanceOop.
32
33 class instanceOopDesc : public oopDesc {
34 public:
35 // aligned header size.
36 static int header_size() { return sizeof(instanceOopDesc)/HeapWordSize; }
37
38 // If compressed, the offset of the fields of the instance may not be aligned.
39 static int base_offset_in_bytes() {
40 return (UseCompressedClassPointers) ?
41 klass_gap_offset_in_bytes() :
42 sizeof(instanceOopDesc);
43
44 }
45 };
46
47 #endif // SHARE_OOPS_INSTANCEOOP_HPP
|