hotspot/src/share/vm/oops/methodDataKlass.cpp
changeset 360 21d113ecbf6a
parent 1 489c9b5090e2
child 670 ddf3e9583f2f
equal deleted inserted replaced
357:f4edb0d9f109 360:21d113ecbf6a
    93     data->follow_contents(cm);
    93     data->follow_contents(cm);
    94   }
    94   }
    95 }
    95 }
    96 #endif // SERIALGC
    96 #endif // SERIALGC
    97 
    97 
       
    98 
    98 int methodDataKlass::oop_oop_iterate(oop obj, OopClosure* blk) {
    99 int methodDataKlass::oop_oop_iterate(oop obj, OopClosure* blk) {
    99   assert (obj->is_methodData(), "object must be method data");
   100   assert (obj->is_methodData(), "object must be method data");
   100   methodDataOop m = methodDataOop(obj);
   101   methodDataOop m = methodDataOop(obj);
   101   // Get size before changing pointers
   102   // Get size before changing pointers
   102   // Don't call size() or oop_size() since that is a virtual call.
   103   // Don't call size() or oop_size() since that is a virtual call.
   110        data = m->next_data(data)) {
   111        data = m->next_data(data)) {
   111     data->oop_iterate(blk);
   112     data->oop_iterate(blk);
   112   }
   113   }
   113   return size;
   114   return size;
   114 }
   115 }
   115 
       
   116 
   116 
   117 int methodDataKlass::oop_oop_iterate_m(oop obj, OopClosure* blk, MemRegion mr) {
   117 int methodDataKlass::oop_oop_iterate_m(oop obj, OopClosure* blk, MemRegion mr) {
   118   assert (obj->is_methodData(), "object must be method data");
   118   assert (obj->is_methodData(), "object must be method data");
   119   methodDataOop m = methodDataOop(obj);
   119   methodDataOop m = methodDataOop(obj);
   120   // Get size before changing pointers
   120   // Get size before changing pointers
   156 #ifndef SERIALGC
   156 #ifndef SERIALGC
   157 void methodDataKlass::oop_copy_contents(PSPromotionManager* pm, oop obj) {
   157 void methodDataKlass::oop_copy_contents(PSPromotionManager* pm, oop obj) {
   158   assert (obj->is_methodData(), "object must be method data");
   158   assert (obj->is_methodData(), "object must be method data");
   159   methodDataOop m = methodDataOop(obj);
   159   methodDataOop m = methodDataOop(obj);
   160   // This should never point into the young gen.
   160   // This should never point into the young gen.
   161   assert(!PSScavenge::should_scavenge(oop(*m->adr_method())), "Sanity");
   161   assert(!PSScavenge::should_scavenge(m->adr_method()), "Sanity");
   162 }
   162 }
   163 
   163 
   164 void methodDataKlass::oop_push_contents(PSPromotionManager* pm, oop obj) {
   164 void methodDataKlass::oop_push_contents(PSPromotionManager* pm, oop obj) {
   165   assert (obj->is_methodData(), "object must be method data");
   165   assert (obj->is_methodData(), "object must be method data");
   166   methodDataOop m = methodDataOop(obj);
   166   methodDataOop m = methodDataOop(obj);
   167   // This should never point into the young gen.
   167   // This should never point into the young gen.
   168   assert(!PSScavenge::should_scavenge(oop(*m->adr_method())), "Sanity");
   168   assert(!PSScavenge::should_scavenge(m->adr_method()), "Sanity");
   169 }
   169 }
   170 
   170 
   171 int methodDataKlass::oop_update_pointers(ParCompactionManager* cm, oop obj) {
   171 int methodDataKlass::oop_update_pointers(ParCompactionManager* cm, oop obj) {
   172   assert(obj->is_methodData(), "should be method data");
   172   assert(obj->is_methodData(), "should be method data");
   173   methodDataOop m = methodDataOop(obj);
   173   methodDataOop m = methodDataOop(obj);