hotspot/src/share/vm/oops/typeArrayKlass.cpp
changeset 15482 470d0b0c09f1
parent 13961 aeaa21c167d1
child 22234 da823d78ad65
equal deleted inserted replaced
15224:0f9e3436040d 15482:470d0b0c09f1
    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 }