22 * |
22 * |
23 */ |
23 */ |
24 |
24 |
25 #include "precompiled.hpp" |
25 #include "precompiled.hpp" |
26 #include "aot/aotLoader.hpp" |
26 #include "aot/aotLoader.hpp" |
|
27 #include "classfile/javaClasses.inline.hpp" |
27 #include "classfile/stringTable.hpp" |
28 #include "classfile/stringTable.hpp" |
28 #include "classfile/symbolTable.hpp" |
29 #include "classfile/symbolTable.hpp" |
29 #include "classfile/systemDictionary.hpp" |
30 #include "classfile/systemDictionary.hpp" |
30 #include "code/codeCache.hpp" |
31 #include "code/codeCache.hpp" |
31 #include "gc/parallel/gcTaskManager.hpp" |
32 #include "gc/parallel/gcTaskManager.hpp" |
51 #include "gc/shared/referenceProcessor.hpp" |
52 #include "gc/shared/referenceProcessor.hpp" |
52 #include "gc/shared/referenceProcessorPhaseTimes.hpp" |
53 #include "gc/shared/referenceProcessorPhaseTimes.hpp" |
53 #include "gc/shared/spaceDecorator.hpp" |
54 #include "gc/shared/spaceDecorator.hpp" |
54 #include "gc/shared/weakProcessor.hpp" |
55 #include "gc/shared/weakProcessor.hpp" |
55 #include "logging/log.hpp" |
56 #include "logging/log.hpp" |
|
57 #include "memory/iterator.inline.hpp" |
56 #include "memory/resourceArea.hpp" |
58 #include "memory/resourceArea.hpp" |
57 #include "oops/access.inline.hpp" |
59 #include "oops/access.inline.hpp" |
|
60 #include "oops/instanceClassLoaderKlass.inline.hpp" |
58 #include "oops/instanceKlass.inline.hpp" |
61 #include "oops/instanceKlass.inline.hpp" |
59 #include "oops/instanceMirrorKlass.inline.hpp" |
62 #include "oops/instanceMirrorKlass.inline.hpp" |
60 #include "oops/methodData.hpp" |
63 #include "oops/methodData.hpp" |
61 #include "oops/objArrayKlass.inline.hpp" |
64 #include "oops/objArrayKlass.inline.hpp" |
62 #include "oops/oop.inline.hpp" |
65 #include "oops/oop.inline.hpp" |
3067 update_state(words); |
3070 update_state(words); |
3068 } |
3071 } |
3069 |
3072 |
3070 void InstanceKlass::oop_pc_update_pointers(oop obj, ParCompactionManager* cm) { |
3073 void InstanceKlass::oop_pc_update_pointers(oop obj, ParCompactionManager* cm) { |
3071 PSParallelCompact::AdjustPointerClosure closure(cm); |
3074 PSParallelCompact::AdjustPointerClosure closure(cm); |
3072 oop_oop_iterate_oop_maps<true>(obj, &closure); |
3075 if (UseCompressedOops) { |
|
3076 oop_oop_iterate_oop_maps<narrowOop>(obj, &closure); |
|
3077 } else { |
|
3078 oop_oop_iterate_oop_maps<oop>(obj, &closure); |
|
3079 } |
3073 } |
3080 } |
3074 |
3081 |
3075 void InstanceMirrorKlass::oop_pc_update_pointers(oop obj, ParCompactionManager* cm) { |
3082 void InstanceMirrorKlass::oop_pc_update_pointers(oop obj, ParCompactionManager* cm) { |
3076 InstanceKlass::oop_pc_update_pointers(obj, cm); |
3083 InstanceKlass::oop_pc_update_pointers(obj, cm); |
3077 |
3084 |
3078 PSParallelCompact::AdjustPointerClosure closure(cm); |
3085 PSParallelCompact::AdjustPointerClosure closure(cm); |
3079 oop_oop_iterate_statics<true>(obj, &closure); |
3086 if (UseCompressedOops) { |
|
3087 oop_oop_iterate_statics<narrowOop>(obj, &closure); |
|
3088 } else { |
|
3089 oop_oop_iterate_statics<oop>(obj, &closure); |
|
3090 } |
3080 } |
3091 } |
3081 |
3092 |
3082 void InstanceClassLoaderKlass::oop_pc_update_pointers(oop obj, ParCompactionManager* cm) { |
3093 void InstanceClassLoaderKlass::oop_pc_update_pointers(oop obj, ParCompactionManager* cm) { |
3083 InstanceKlass::oop_pc_update_pointers(obj, cm); |
3094 InstanceKlass::oop_pc_update_pointers(obj, cm); |
3084 } |
3095 } |
3116 } |
3127 } |
3117 |
3128 |
3118 void ObjArrayKlass::oop_pc_update_pointers(oop obj, ParCompactionManager* cm) { |
3129 void ObjArrayKlass::oop_pc_update_pointers(oop obj, ParCompactionManager* cm) { |
3119 assert(obj->is_objArray(), "obj must be obj array"); |
3130 assert(obj->is_objArray(), "obj must be obj array"); |
3120 PSParallelCompact::AdjustPointerClosure closure(cm); |
3131 PSParallelCompact::AdjustPointerClosure closure(cm); |
3121 oop_oop_iterate_elements<true>(objArrayOop(obj), &closure); |
3132 if (UseCompressedOops) { |
|
3133 oop_oop_iterate_elements<narrowOop>(objArrayOop(obj), &closure); |
|
3134 } else { |
|
3135 oop_oop_iterate_elements<oop>(objArrayOop(obj), &closure); |
|
3136 } |
3122 } |
3137 } |
3123 |
3138 |
3124 void TypeArrayKlass::oop_pc_update_pointers(oop obj, ParCompactionManager* cm) { |
3139 void TypeArrayKlass::oop_pc_update_pointers(oop obj, ParCompactionManager* cm) { |
3125 assert(obj->is_typeArray(),"must be a type array"); |
3140 assert(obj->is_typeArray(),"must be a type array"); |
3126 } |
3141 } |