src/share/vm/oops/typeArrayKlass.cpp

changeset 4542
db9981fd3124
parent 4151
6e5a59a8e4a7
child 6198
55fb97c4c58d
equal deleted inserted replaced
4461:46e60405583b 4542:db9981fd3124
37 #include "oops/objArrayKlass.hpp" 37 #include "oops/objArrayKlass.hpp"
38 #include "oops/oop.inline.hpp" 38 #include "oops/oop.inline.hpp"
39 #include "oops/typeArrayKlass.hpp" 39 #include "oops/typeArrayKlass.hpp"
40 #include "oops/typeArrayOop.hpp" 40 #include "oops/typeArrayOop.hpp"
41 #include "runtime/handles.inline.hpp" 41 #include "runtime/handles.inline.hpp"
42 #include "utilities/macros.hpp"
42 43
43 bool TypeArrayKlass::compute_is_subtype_of(Klass* k) { 44 bool TypeArrayKlass::compute_is_subtype_of(Klass* k) {
44 if (!k->oop_is_typeArray()) { 45 if (!k->oop_is_typeArray()) {
45 return ArrayKlass::compute_is_subtype_of(k); 46 return ArrayKlass::compute_is_subtype_of(k);
46 } 47 }
206 assert(obj->is_typeArray(),"must be a type array"); 207 assert(obj->is_typeArray(),"must be a type array");
207 // Performance tweak: We skip iterating over the klass pointer since we 208 // Performance tweak: We skip iterating over the klass pointer since we
208 // know that Universe::TypeArrayKlass never moves. 209 // know that Universe::TypeArrayKlass never moves.
209 } 210 }
210 211
211 #ifndef SERIALGC 212 #if INCLUDE_ALL_GCS
212 void TypeArrayKlass::oop_follow_contents(ParCompactionManager* cm, oop obj) { 213 void TypeArrayKlass::oop_follow_contents(ParCompactionManager* cm, oop obj) {
213 assert(obj->is_typeArray(),"must be a type array"); 214 assert(obj->is_typeArray(),"must be a type array");
214 // Performance tweak: We skip iterating over the klass pointer since we 215 // Performance tweak: We skip iterating over the klass pointer since we
215 // know that Universe::TypeArrayKlass never moves. 216 // know that Universe::TypeArrayKlass never moves.
216 } 217 }
217 #endif // SERIALGC 218 #endif // INCLUDE_ALL_GCS
218 219
219 int TypeArrayKlass::oop_adjust_pointers(oop obj) { 220 int TypeArrayKlass::oop_adjust_pointers(oop obj) {
220 assert(obj->is_typeArray(),"must be a type array"); 221 assert(obj->is_typeArray(),"must be a type array");
221 typeArrayOop t = typeArrayOop(obj); 222 typeArrayOop t = typeArrayOop(obj);
222 // Performance tweak: We skip iterating over the klass pointer since we 223 // Performance tweak: We skip iterating over the klass pointer since we
238 // Performance tweak: We skip iterating over the klass pointer since we 239 // Performance tweak: We skip iterating over the klass pointer since we
239 // know that Universe::TypeArrayKlass never moves. 240 // know that Universe::TypeArrayKlass never moves.
240 return t->object_size(); 241 return t->object_size();
241 } 242 }
242 243
243 #ifndef SERIALGC 244 #if INCLUDE_ALL_GCS
244 void TypeArrayKlass::oop_push_contents(PSPromotionManager* pm, oop obj) { 245 void TypeArrayKlass::oop_push_contents(PSPromotionManager* pm, oop obj) {
245 ShouldNotReachHere(); 246 ShouldNotReachHere();
246 assert(obj->is_typeArray(),"must be a type array"); 247 assert(obj->is_typeArray(),"must be a type array");
247 } 248 }
248 249
249 int 250 int
250 TypeArrayKlass::oop_update_pointers(ParCompactionManager* cm, oop obj) { 251 TypeArrayKlass::oop_update_pointers(ParCompactionManager* cm, oop obj) {
251 assert(obj->is_typeArray(),"must be a type array"); 252 assert(obj->is_typeArray(),"must be a type array");
252 return typeArrayOop(obj)->object_size(); 253 return typeArrayOop(obj)->object_size();
253 } 254 }
254 #endif // SERIALGC 255 #endif // INCLUDE_ALL_GCS
255 256
256 void TypeArrayKlass::initialize(TRAPS) { 257 void TypeArrayKlass::initialize(TRAPS) {
257 // Nothing to do. Having this function is handy since objArrayKlasses can be 258 // Nothing to do. Having this function is handy since objArrayKlasses can be
258 // initialized by calling initialize on their bottom_klass, see ObjArrayKlass::initialize 259 // initialized by calling initialize on their bottom_klass, see ObjArrayKlass::initialize
259 } 260 }

mercurial