< prev index next >
src/share/vm/ci/ciValueKlass.hpp
Print this page
@@ -30,24 +30,30 @@
#include "ci/ciInstanceKlass.hpp"
#include "ci/ciSymbol.hpp"
// ciValueKlass
//
-// TODO
+// 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; }
- int field_size() { return nonstatic_field_size(); }
- int field_count() { return nof_nonstatic_fields(); }
+
+ // 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
< prev index next >