< prev index next >

src/hotspot/share/runtime/fieldType.hpp

Print this page

        

*** 24,33 **** --- 24,34 ---- #ifndef SHARE_RUNTIME_FIELDTYPE_HPP #define SHARE_RUNTIME_FIELDTYPE_HPP #include "memory/allocation.hpp" + #include "oops/arrayStorageProperties.hpp" #include "oops/symbol.hpp" // Note: FieldType should be based on the SignatureIterator (or vice versa). // In any case, this structure should be re-thought at some point.
*** 37,51 **** // reference count if a Symbol is created in the case of T_OBJECT class FieldArrayInfo : public StackObj { friend class FieldType; // field type can set these fields. int _dimension; Symbol* _object_key; public: int dimension() { return _dimension; } Symbol* object_key() { return _object_key; } // basic constructor ! FieldArrayInfo() : _dimension(0), _object_key(NULL) {} // destructor decrements object key's refcount if created ~FieldArrayInfo() { if (_object_key != NULL) _object_key->decrement_refcount(); } }; --- 38,54 ---- // reference count if a Symbol is created in the case of T_OBJECT class FieldArrayInfo : public StackObj { friend class FieldType; // field type can set these fields. int _dimension; Symbol* _object_key; + ArrayStorageProperties _storage_props; public: int dimension() { return _dimension; } Symbol* object_key() { return _object_key; } + ArrayStorageProperties storage_props() { return _storage_props; } // basic constructor ! FieldArrayInfo() : _dimension(0), _object_key(NULL), _storage_props(ArrayStorageProperties::empty) {} // destructor decrements object key's refcount if created ~FieldArrayInfo() { if (_object_key != NULL) _object_key->decrement_refcount(); } };
*** 72,79 **** --- 75,85 ---- return signature->is_Q_signature(); } // Parse field and extract array information. Works for T_ARRAY only. static BasicType get_array_info(Symbol* signature, FieldArrayInfo& ai, TRAPS); + + // LWorld (LW2) Q-type array descriptors require null-free, and preferably flat if possible + static ArrayStorageProperties get_array_storage_properties(Symbol* signature); }; #endif // SHARE_RUNTIME_FIELDTYPE_HPP
< prev index next >