< prev index next >

src/hotspot/share/oops/accessBackend.hpp

Print this page
rev 52073 : 8212054: Boilerplate to bind oopDesc::equals_raw() to actual raw implementation

@@ -996,19 +996,19 @@
       return RuntimeDispatch<decorators, oop, BARRIER_RESOLVE>::resolve(obj);
     }
 
     template <DecoratorSet decorators>
     inline static typename EnableIf<
-      HasDecorator<decorators, INTERNAL_BT_TO_SPACE_INVARIANT>::value, bool>::type
+      HasDecorator<decorators, AS_RAW>::value || HasDecorator<decorators, INTERNAL_BT_TO_SPACE_INVARIANT>::value, bool>::type
     equals(oop o1, oop o2) {
       typedef RawAccessBarrier<decorators & RAW_DECORATOR_MASK> Raw;
       return Raw::equals(o1, o2);
     }
 
     template <DecoratorSet decorators>
     inline static typename EnableIf<
-      !HasDecorator<decorators, INTERNAL_BT_TO_SPACE_INVARIANT>::value, bool>::type
+      !HasDecorator<decorators, AS_RAW>::value && !HasDecorator<decorators, INTERNAL_BT_TO_SPACE_INVARIANT>::value, bool>::type
     equals(oop o1, oop o2) {
       return RuntimeDispatch<decorators, oop, BARRIER_EQUALS>::equals(o1, o2);
     }
   };
 
< prev index next >