< prev index next >
src/share/vm/ci/ciValueKlass.hpp
Print this page
*** 30,53 ****
#include "ci/ciInstanceKlass.hpp"
#include "ci/ciSymbol.hpp"
// ciValueKlass
//
! // TODO
class ciValueKlass : public ciInstanceKlass {
CI_PACKAGE_ACCESS
protected:
ciValueKlass(KlassHandle h_k) : ciInstanceKlass(h_k) {
assert(is_final(), "ValueKlass must be final");
};
public:
bool is_valuetype() const { return true; }
! int field_size() { return nonstatic_field_size(); }
! int 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;
};
#endif // SHARE_VM_CI_CIVALUEKLASS_HPP
--- 30,59 ----
#include "ci/ciInstanceKlass.hpp"
#include "ci/ciSymbol.hpp"
// ciValueKlass
//
! // Specialized ciInstanceKlass for value types.
class ciValueKlass : public ciInstanceKlass {
CI_PACKAGE_ACCESS
protected:
ciValueKlass(KlassHandle h_k) : ciInstanceKlass(h_k) {
assert(is_final(), "ValueKlass must be final");
};
public:
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;
! ciType* get_field_type_by_index(int index);
! int get_first_field_offset() const;
};
#endif // SHARE_VM_CI_CIVALUEKLASS_HPP
< prev index next >