--- a/src/hotspot/share/runtime/synchronizer.cpp Tue Apr 03 10:27:46 2018 +0200
+++ b/src/hotspot/share/runtime/synchronizer.cpp Tue Apr 03 13:15:27 2018 +0200
@@ -173,7 +173,7 @@
if (mark->has_monitor()) {
ObjectMonitor * const mon = mark->monitor();
- assert(mon->object() == obj, "invariant");
+ assert(oopDesc::equals((oop) mon->object(), obj), "invariant");
if (mon->owner() != self) return false; // slow-path for IMS exception
if (mon->first_waiter() != NULL) {
@@ -217,7 +217,7 @@
if (mark->has_monitor()) {
ObjectMonitor * const m = mark->monitor();
- assert(m->object() == obj, "invariant");
+ assert(oopDesc::equals((oop) m->object(), obj), "invariant");
Thread * const owner = (Thread *) m->_owner;
// Lock contention and Transactional Lock Elision (TLE) diagnostics
@@ -1404,7 +1404,7 @@
if (mark->has_monitor()) {
ObjectMonitor * inf = mark->monitor();
assert(inf->header()->is_neutral(), "invariant");
- assert(inf->object() == object, "invariant");
+ assert(oopDesc::equals((oop) inf->object(), object), "invariant");
assert(ObjectSynchronizer::verify_objmon_isinpool(inf), "monitor is invalid");
return inf;
}