aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDmitry Petrashko <dmitry.petrashko@gmail.com>2015-04-27 19:05:29 +0200
committerDmitry Petrashko <dmitry.petrashko@gmail.com>2015-04-30 14:26:08 +0200
commit086b1c29af6014c1a714276bf87fcd3c6505aafe (patch)
tree0ee7783db70e4c7ba514e593e19809e885837a62
parentdd65b3ebb391e89a8a6f32230c8e91c9d6f670bd (diff)
downloaddotty-086b1c29af6014c1a714276bf87fcd3c6505aafe.tar.gz
dotty-086b1c29af6014c1a714276bf87fcd3c6505aafe.tar.bz2
dotty-086b1c29af6014c1a714276bf87fcd3c6505aafe.zip
LazyVals: expected value of flag takes only tree values, no need to use long.
-rw-r--r--src/dotty/runtime/LazyVals.scala2
1 files changed, 1 insertions, 1 deletions
diff --git a/src/dotty/runtime/LazyVals.scala b/src/dotty/runtime/LazyVals.scala
index d662f049a..2aa45e6fd 100644
--- a/src/dotty/runtime/LazyVals.scala
+++ b/src/dotty/runtime/LazyVals.scala
@@ -11,8 +11,8 @@ object LazyVals {
final val BITS_PER_LAZY_VAL = 2
final val LAZY_VAL_MASK = 3
- @inline def CAS(t: Object, offset: Long, e: Long, v: Long, ord: Int) = {
@inline def STATE(cur: Long, ord: Int) = (cur >> (ord * BITS_PER_LAZY_VAL)) & LAZY_VAL_MASK
+ @inline def CAS(t: Object, offset: Long, e: Long, v: Int, ord: Int) = {
val mask = ~(LAZY_VAL_MASK << ord * BITS_PER_LAZY_VAL)
val n = (e & mask) | (v << (ord * BITS_PER_LAZY_VAL))
compareAndSet(t, offset, e, n)