src/share/vm/oops/valueArrayKlass.hpp
Index
Unified diffs
Context diffs
Sdiffs
Patch
New
Old
Previous File
Next File
valhalla Cdiff src/share/vm/oops/valueArrayKlass.hpp
src/share/vm/oops/valueArrayKlass.hpp
Print this page
*** 34,48 ****
* Array of values, gives a layout of typeArrayOop, but needs oops iterators
*/
class ValueArrayKlass : public ArrayKlass {
friend class VMStructs;
private:
- ValueKlass* _element_klass; // The klass of the elements of this array type
-
// Constructor
ValueArrayKlass(Klass* element_klass, Symbol* name);
- void set_element_klass(ValueKlass* k);
static ValueArrayKlass* allocate_klass(Klass* element_klass, Symbol* name, TRAPS);
protected:
// Returns the ArrayKlass for n'th dimension.
Klass* array_klass_impl(bool or_null, int n, TRAPS);
--- 34,45 ----
*** 52,61 ****
--- 49,61 ----
public:
ValueArrayKlass() {}
+ virtual ValueKlass* element_klass() const;
+ virtual void set_element_klass(Klass* k);
+
// Casting from Klass*
static ValueArrayKlass* cast(Klass* k) {
assert(k->is_valueArray_klass(), "cast to ValueArrayKlass");
return (ValueArrayKlass*) k;
}
*** 63,85 ****
// klass allocation
static ValueArrayKlass* allocate_klass(Klass* element_klass, TRAPS);
void initialize(TRAPS);
- // Instance variables
- ValueKlass* element_klass() const { return _element_klass; }
- ValueKlass** element_klass_addr() { return &_element_klass; }
-
ModuleEntry* module() const;
PackageEntry* package() const;
int element_byte_size() const { return 1 << layout_helper_log2_element_size(_layout_helper); }
bool is_valueArray_klass_slow() const { return true; }
! bool contains_oops() { return element_klass()->contains_oops(); }
! bool is_atomic() { return element_klass()->is_atomic(); }
oop protection_domain() const;
static jint array_layout_helper(ValueKlass* vklass); // layout helper for values
--- 63,86 ----
// klass allocation
static ValueArrayKlass* allocate_klass(Klass* element_klass, TRAPS);
void initialize(TRAPS);
ModuleEntry* module() const;
PackageEntry* package() const;
int element_byte_size() const { return 1 << layout_helper_log2_element_size(_layout_helper); }
bool is_valueArray_klass_slow() const { return true; }
! bool contains_oops() {
! return element_klass()->contains_oops();
! }
!
! bool is_atomic() {
! return element_klass()->is_atomic();
! }
oop protection_domain() const;
static jint array_layout_helper(ValueKlass* vklass); // layout helper for values
*** 99,111 ****
const char* internal_name() const { return external_name(); }
// Copying
void copy_array(arrayOop s, int src_pos, arrayOop d, int dst_pos, int length, TRAPS);
- // Compiler/Interpreter offset
- static ByteSize element_klass_offset() { return in_ByteSize(offset_of(ValueArrayKlass, _element_klass)); }
-
// GC specific object visitors
//
// Mark Sweep
int oop_ms_adjust_pointers(oop obj);
--- 100,109 ----
src/share/vm/oops/valueArrayKlass.hpp
Index
Unified diffs
Context diffs
Sdiffs
Patch
New
Old
Previous File
Next File