From 5af3d414ddd4eeb56ece1fb3851cfd0c73194a3f Mon Sep 17 00:00:00 2001 From: Liu Fengyun Date: Fri, 31 May 2019 11:33:43 +0200 Subject: [PATCH] Fix #548: use identityHashCode for better performance The two related Java issues are marked as resolved: - https://bugs.openjdk.java.net/browse/JDK-8068239 - https://bugs.openjdk.java.net/browse/JDK-8130042 There are no actual fix, but it's mentioned not reproducible. --- library/src/dotty/runtime/LazyVals.scala | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/library/src/dotty/runtime/LazyVals.scala b/library/src/dotty/runtime/LazyVals.scala index 5cd55380ab88..773721e26948 100644 --- a/library/src/dotty/runtime/LazyVals.scala +++ b/library/src/dotty/runtime/LazyVals.scala @@ -26,9 +26,7 @@ object LazyVals { Array.tabulate(base)(_ => new Object) private def getMonitor(obj: Object, fieldId: Int = 0) = { - var id = ( - /*java.lang.System.identityHashCode(obj) + */ // should be here, but #548 - fieldId) % base + var id = (java.lang.System.identityHashCode(obj) + fieldId) % base if (id < 0) id += base monitors(id)