< prev index next > src/hotspot/share/gc/z/zIterator.inline.hpp
Print this page
#include "gc/z/zVerify.hpp"
#include "memory/iterator.inline.hpp"
#include "oops/objArrayOop.hpp"
#include "oops/oop.inline.hpp"
+ #include "oops/refArrayOop.hpp"
inline bool ZIterator::is_invisible_object(oop obj) {
// This is a good place to make sure that we can't concurrently iterate over
// objects while VMThread operations think they have exclusive access to the
// object graph.
inline bool ZIterator::is_invisible_object_array(oop obj) {
return is_invisible_object_array(obj, obj->klass());
}
inline bool ZIterator::is_invisible_object_array(oop obj, Klass* klass) {
- return klass->is_objArray_klass() && is_invisible_object(obj);
+ return klass->is_refArray_klass() && is_invisible_object(obj);
}
// These iterators skips invisible object arrays
template <typename OopClosureT>
}
template <typename OopClosureT>
void ZIterator::oop_iterate_elements_range(objArrayOop obj, OopClosureT* cl, int start, int end) {
assert(!is_invisible_object_array(obj), "not safe");
- obj->oop_iterate_elements_range(cl, start, end);
+ assert(obj->is_refArray(), "Must be");
+ refArrayOop(obj)->oop_iterate_elements_range(cl, start, end);
}
template <typename Function>
class ZBasicOopIterateClosure : public BasicOopIterateClosure {
private:
< prev index next >