30 #ifndef SERIALGC |
30 #ifndef SERIALGC |
31 #include "gc_implementation/parallelScavenge/psCompactionManager.inline.hpp" |
31 #include "gc_implementation/parallelScavenge/psCompactionManager.inline.hpp" |
32 #include "gc_implementation/parallelScavenge/psParallelCompact.hpp" |
32 #include "gc_implementation/parallelScavenge/psParallelCompact.hpp" |
33 #endif |
33 #endif |
34 |
34 |
35 void objArrayKlass::oop_follow_contents(oop obj, int index) { |
35 void ObjArrayKlass::oop_follow_contents(oop obj, int index) { |
36 if (UseCompressedOops) { |
36 if (UseCompressedOops) { |
37 objarray_follow_contents<narrowOop>(obj, index); |
37 objarray_follow_contents<narrowOop>(obj, index); |
38 } else { |
38 } else { |
39 objarray_follow_contents<oop>(obj, index); |
39 objarray_follow_contents<oop>(obj, index); |
40 } |
40 } |
41 } |
41 } |
42 |
42 |
43 template <class T> |
43 template <class T> |
44 void objArrayKlass::objarray_follow_contents(oop obj, int index) { |
44 void ObjArrayKlass::objarray_follow_contents(oop obj, int index) { |
45 objArrayOop a = objArrayOop(obj); |
45 objArrayOop a = objArrayOop(obj); |
46 const size_t len = size_t(a->length()); |
46 const size_t len = size_t(a->length()); |
47 const size_t beg_index = size_t(index); |
47 const size_t beg_index = size_t(index); |
48 assert(beg_index < len || len == 0, "index too large"); |
48 assert(beg_index < len || len == 0, "index too large"); |
49 |
49 |
62 MarkSweep::push_objarray(a, end_index); // Push the continuation. |
62 MarkSweep::push_objarray(a, end_index); // Push the continuation. |
63 } |
63 } |
64 } |
64 } |
65 |
65 |
66 #ifndef SERIALGC |
66 #ifndef SERIALGC |
67 void objArrayKlass::oop_follow_contents(ParCompactionManager* cm, oop obj, |
67 void ObjArrayKlass::oop_follow_contents(ParCompactionManager* cm, oop obj, |
68 int index) { |
68 int index) { |
69 if (UseCompressedOops) { |
69 if (UseCompressedOops) { |
70 objarray_follow_contents<narrowOop>(cm, obj, index); |
70 objarray_follow_contents<narrowOop>(cm, obj, index); |
71 } else { |
71 } else { |
72 objarray_follow_contents<oop>(cm, obj, index); |
72 objarray_follow_contents<oop>(cm, obj, index); |
73 } |
73 } |
74 } |
74 } |
75 |
75 |
76 template <class T> |
76 template <class T> |
77 void objArrayKlass::objarray_follow_contents(ParCompactionManager* cm, oop obj, |
77 void ObjArrayKlass::objarray_follow_contents(ParCompactionManager* cm, oop obj, |
78 int index) { |
78 int index) { |
79 objArrayOop a = objArrayOop(obj); |
79 objArrayOop a = objArrayOop(obj); |
80 const size_t len = size_t(a->length()); |
80 const size_t len = size_t(a->length()); |
81 const size_t beg_index = size_t(index); |
81 const size_t beg_index = size_t(index); |
82 assert(beg_index < len || len == 0, "index too large"); |
82 assert(beg_index < len || len == 0, "index too large"); |