< 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 >