--- a/src/hotspot/share/prims/jvmtiTagMap.cpp Thu Oct 17 20:27:44 2019 +0100
+++ b/src/hotspot/share/prims/jvmtiTagMap.cpp Thu Oct 17 20:53:35 2019 +0100
@@ -63,9 +63,6 @@
#if INCLUDE_ZGC
#include "gc/z/zGlobals.hpp"
#endif
-#if INCLUDE_JVMCI
-#include "jvmci/jvmci.hpp"
-#endif
// JvmtiTagHashmapEntry
//
@@ -108,7 +105,7 @@
}
inline bool equals(oop object) {
- return oopDesc::equals(object, object_peek());
+ return object == object_peek();
}
inline JvmtiTagHashmapEntry* next() const { return _next; }
@@ -523,7 +520,7 @@
tag_map = new JvmtiTagMap(env);
}
} else {
- CHECK_UNHANDLED_OOPS_ONLY(Thread::current()->clear_unhandled_oops());
+ DEBUG_ONLY(Thread::current()->check_possible_safepoint());
}
return tag_map;
}
@@ -1548,7 +1545,7 @@
// SATB marking similar to other j.l.ref.Reference referents. This is
// achieved by using a phantom load in the object() accessor.
oop o = entry->object();
- assert(o != NULL && Universe::heap()->is_in_reserved(o), "sanity check");
+ assert(o != NULL && Universe::heap()->is_in(o), "sanity check");
jobject ref = JNIHandles::make_local(JavaThread::current(), o);
_object_results->append(ref);
_tag_results->append((uint64_t)entry->tag());
@@ -1631,8 +1628,8 @@
public:
void do_object(oop o) {
if (o != NULL) {
- markOop mark = o->mark();
- if (mark->is_marked()) {
+ markWord mark = o->mark();
+ if (mark.is_marked()) {
o->init_mark();
}
}
@@ -1644,7 +1641,7 @@
private:
// saved headers
static GrowableArray<oop>* _saved_oop_stack;
- static GrowableArray<markOop>* _saved_mark_stack;
+ static GrowableArray<markWord>* _saved_mark_stack;
static bool _needs_reset; // do we need to reset mark bits?
public:
@@ -1659,7 +1656,7 @@
};
GrowableArray<oop>* ObjectMarker::_saved_oop_stack = NULL;
-GrowableArray<markOop>* ObjectMarker::_saved_mark_stack = NULL;
+GrowableArray<markWord>* ObjectMarker::_saved_mark_stack = NULL;
bool ObjectMarker::_needs_reset = true; // need to reset mark bits by default
// initialize ObjectMarker - prepares for object marking
@@ -1670,7 +1667,7 @@
Universe::heap()->ensure_parsability(false); // no need to retire TLABs
// create stacks for interesting headers
- _saved_mark_stack = new (ResourceObj::C_HEAP, mtInternal) GrowableArray<markOop>(4000, true);
+ _saved_mark_stack = new (ResourceObj::C_HEAP, mtInternal) GrowableArray<markWord>(4000, true);
_saved_oop_stack = new (ResourceObj::C_HEAP, mtInternal) GrowableArray<oop>(4000, true);
if (UseBiasedLocking) {
@@ -1694,7 +1691,7 @@
// now restore the interesting headers
for (int i = 0; i < _saved_oop_stack->length(); i++) {
oop o = _saved_oop_stack->at(i);
- markOop mark = _saved_mark_stack->at(i);
+ markWord mark = _saved_mark_stack->at(i);
o->set_mark(mark);
}
@@ -1710,23 +1707,23 @@
// mark an object
inline void ObjectMarker::mark(oop o) {
assert(Universe::heap()->is_in(o), "sanity check");
- assert(!o->mark()->is_marked(), "should only mark an object once");
+ assert(!o->mark().is_marked(), "should only mark an object once");
// object's mark word
- markOop mark = o->mark();
-
- if (mark->must_be_preserved(o)) {
+ markWord mark = o->mark();
+
+ if (o->mark_must_be_preserved(mark)) {
_saved_mark_stack->push(mark);
_saved_oop_stack->push(o);
}
// mark the object
- o->set_mark(markOopDesc::prototype()->set_marked());
+ o->set_mark(markWord::prototype().set_marked());
}
// return true if object is marked
inline bool ObjectMarker::visited(oop o) {
- return o->mark()->is_marked();
+ return o->mark().is_marked();
}
// Stack allocated class to help ensure that ObjectMarker is used
@@ -2575,7 +2572,7 @@
return;
}
- assert(Universe::heap()->is_in_reserved(o), "should be impossible");
+ assert(Universe::heap()->is_in(o), "should be impossible");
jvmtiHeapReferenceKind kind = root_kind();
if (kind == JVMTI_HEAP_REFERENCE_SYSTEM_CLASS) {
@@ -2967,7 +2964,7 @@
oop fld_o = o->obj_field(field->field_offset());
// ignore any objects that aren't visible to profiler
if (fld_o != NULL) {
- assert(Universe::heap()->is_in_reserved(fld_o), "unsafe code should not "
+ assert(Universe::heap()->is_in(fld_o), "unsafe code should not "
"have references to Klass* anymore");
int slot = field->field_index();
if (!CallbackInvoker::report_field_reference(o, fld_o, slot)) {
@@ -3042,14 +3039,6 @@
return false;
}
-#if INCLUDE_JVMCI
- blk.set_kind(JVMTI_HEAP_REFERENCE_OTHER);
- JVMCI::oops_do(&blk);
- if (blk.stopped()) {
- return false;
- }
-#endif
-
return true;
}