< prev index next >

src/hotspot/share/oops/typeArrayOop.hpp

Print this page

114 
115   // Returns the number of words necessary to hold an array of "len"
116   // elements each of the given "byte_size".
117  private:
118   static int object_size(int lh, int length) {
119     int instance_header_size = Klass::layout_helper_header_size(lh);
120     int element_shift = Klass::layout_helper_log2_element_size(lh);
121     DEBUG_ONLY(BasicType etype = Klass::layout_helper_element_type(lh));
122     assert(length <= arrayOopDesc::max_array_length(etype), "no overflow");
123 
124     julong size_in_bytes = (juint)length;
125     size_in_bytes <<= element_shift;
126     size_in_bytes += instance_header_size;
127     julong size_in_words = ((size_in_bytes + (HeapWordSize-1)) >> LogHeapWordSize);
128     assert(size_in_words <= (julong)max_jint, "no overflow");
129 
130     return align_object_size((intptr_t)size_in_words);
131   }
132 
133  public:
134   inline int object_size();
135 };
136 
137 #endif // SHARE_OOPS_TYPEARRAYOOP_HPP

114 
115   // Returns the number of words necessary to hold an array of "len"
116   // elements each of the given "byte_size".
117  private:
118   static int object_size(int lh, int length) {
119     int instance_header_size = Klass::layout_helper_header_size(lh);
120     int element_shift = Klass::layout_helper_log2_element_size(lh);
121     DEBUG_ONLY(BasicType etype = Klass::layout_helper_element_type(lh));
122     assert(length <= arrayOopDesc::max_array_length(etype), "no overflow");
123 
124     julong size_in_bytes = (juint)length;
125     size_in_bytes <<= element_shift;
126     size_in_bytes += instance_header_size;
127     julong size_in_words = ((size_in_bytes + (HeapWordSize-1)) >> LogHeapWordSize);
128     assert(size_in_words <= (julong)max_jint, "no overflow");
129 
130     return align_object_size((intptr_t)size_in_words);
131   }
132 
133  public:
134   inline int object_size(const TypeArrayKlass* tk) const;
135 };
136 
137 #endif // SHARE_OOPS_TYPEARRAYOOP_HPP
< prev index next >