--- old/src/share/vm/ci/ciValueKlass.hpp 2016-11-16 09:06:10.590498537 +0100 +++ new/src/share/vm/ci/ciValueKlass.hpp 2016-11-16 09:06:10.518498535 +0100 @@ -32,7 +32,7 @@ // ciValueKlass // -// TODO +// Specialized ciInstanceKlass for value types. class ciValueKlass : public ciInstanceKlass { CI_PACKAGE_ACCESS @@ -42,12 +42,18 @@ }; public: - bool is_valuetype() const { return true; } - int field_size() { return nonstatic_field_size(); } - int field_count() { return nof_nonstatic_fields(); } + bool is_valuetype() const { return true; } + + // Value type factory parameters + int param_count() const; + int param_size(); + + // Value type fields ('index' refers to the value factory parameter index) + int get_field_count() { return nof_nonstatic_fields(); } int get_field_index_by_offset(int offset); int get_field_offset_by_index(int index) const; - BasicType get_field_type_by_index(int index) const; + ciType* get_field_type_by_index(int index); + int get_first_field_offset() const; }; #endif // SHARE_VM_CI_CIVALUEKLASS_HPP