src/share/vm/oops/valueArrayKlass.hpp
Index
Unified diffs
Context diffs
Sdiffs
Patch
New
Old
Previous File
Next File
*** old/src/share/vm/oops/valueArrayKlass.hpp Fri Jun 16 14:34:20 2017
--- new/src/share/vm/oops/valueArrayKlass.hpp Fri Jun 16 14:34:20 2017
*** 34,48 ****
--- 34,45 ----
* 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);
*** 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 ****
--- 63,86 ----
// 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(); }
+ 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 ****
--- 100,109 ----
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);
src/share/vm/oops/valueArrayKlass.hpp
Index
Unified diffs
Context diffs
Sdiffs
Patch
New
Old
Previous File
Next File