diff options
author | Eugene Burmako <xeno.by@gmail.com> | 2013-02-04 11:08:21 +0100 |
---|---|---|
committer | Eugene Burmako <xeno.by@gmail.com> | 2013-02-11 19:18:29 +0100 |
commit | dd148de5a875dd8d691ffdd983b7f2b978a148df (patch) | |
tree | 8daab30afb78d6f9b80879d1384efa1da1f157b6 | |
parent | 4cbb9357c5b0a9bfd58fcb99f76ca320df7a3d5c (diff) | |
download | scala-dd148de5a875dd8d691ffdd983b7f2b978a148df.tar.gz scala-dd148de5a875dd8d691ffdd983b7f2b978a148df.tar.bz2 scala-dd148de5a875dd8d691ffdd983b7f2b978a148df.zip |
synchronizes pendingVolatiles
Called from isVolatile, which is called from isStable, which is a part
of the public reflection API.
-rw-r--r-- | src/reflect/scala/reflect/internal/Types.scala | 4 | ||||
-rw-r--r-- | src/reflect/scala/reflect/runtime/SynchronizedSymbols.scala | 2 |
2 files changed, 2 insertions, 4 deletions
diff --git a/src/reflect/scala/reflect/internal/Types.scala b/src/reflect/scala/reflect/internal/Types.scala index 0afbdc56c8..6d91948d66 100644 --- a/src/reflect/scala/reflect/internal/Types.scala +++ b/src/reflect/scala/reflect/internal/Types.scala @@ -2066,10 +2066,6 @@ trait Types extends api.Types { self: SymbolTable => def apply(value: Constant) = unique(new UniqueConstantType(value)) } - /* Syncnote: The `volatile` var and `pendingVolatiles` mutable set need not be protected - * with synchronized, because they are accessed only from isVolatile, which is called only from - * Typer. - */ private var volatileRecursions: Int = 0 private val pendingVolatiles = new mutable.HashSet[Symbol] diff --git a/src/reflect/scala/reflect/runtime/SynchronizedSymbols.scala b/src/reflect/scala/reflect/runtime/SynchronizedSymbols.scala index 85bd9ff8b6..5a0ac01ac4 100644 --- a/src/reflect/scala/reflect/runtime/SynchronizedSymbols.scala +++ b/src/reflect/scala/reflect/runtime/SynchronizedSymbols.scala @@ -61,6 +61,8 @@ private[reflect] trait SynchronizedSymbols extends internal.Symbols { self: Symb } } + override def isStable: Boolean = gilSynchronized { super.isStable } + // ------ creators ------------------------------------------------------------------- override protected def createAbstractTypeSymbol(name: TypeName, pos: Position, newFlags: Long): AbstractTypeSymbol = |