36 // [klass_field]
37 // [KLASS ]
38
39 class klassOopDesc : public oopDesc {
40 public:
41 // size operation
42 static int header_size() { return sizeof(klassOopDesc)/HeapWordSize; }
43
44 // support for code generation
45 static int klass_part_offset_in_bytes() { return sizeof(klassOopDesc); }
46
47 // returns the Klass part containing dispatching behavior
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;
|
36 // [klass_field]
37 // [KLASS ]
38
39 class klassOopDesc : public oopDesc {
40 public:
41 // size operation
42 static int header_size() { return sizeof(klassOopDesc)/HeapWordSize; }
43
44 // support for code generation
45 static int klass_part_offset_in_bytes() { return sizeof(klassOopDesc); }
46
47 // returns the Klass part containing dispatching behavior
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 volatile oop obj_field_volatile(int offset) const;
57 void obj_field_put(int offset, oop value);
58 void obj_field_put_raw(int offset, oop value);
59 void obj_field_put_volatile(int offset, oop value);
60
61 jbyte byte_field(int offset) const;
62 void byte_field_put(int offset, jbyte contents);
63
64 jchar char_field(int offset) const;
65 void char_field_put(int offset, jchar contents);
66
67 jboolean bool_field(int offset) const;
68 void bool_field_put(int offset, jboolean contents);
69
70 jint int_field(int offset) const;
71 void int_field_put(int offset, jint contents);
72
73 jshort short_field(int offset) const;
74 void short_field_put(int offset, jshort contents);
75
76 jlong long_field(int offset) const;
77 void long_field_put(int offset, jlong contents);
78
79 jfloat float_field(int offset) const;
|