diff options
Diffstat (limited to 'src/library')
-rw-r--r-- | src/library/scala/Symbol.scala | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/src/library/scala/Symbol.scala b/src/library/scala/Symbol.scala index 112764a223..6110fa07dd 100644 --- a/src/library/scala/Symbol.scala +++ b/src/library/scala/Symbol.scala @@ -13,7 +13,7 @@ package scala import scala.collection.jcl -private[scala] object internedSymbols extends jcl.HashMap[String, ref.WeakReference[Symbol]] +private[scala] object internedSymbols extends jcl.WeakHashMap[Symbol, ref.WeakReference[Symbol]] /** <p> * Instances of <code>Symbol</code> can be created easily with @@ -47,10 +47,10 @@ final case class Symbol(name: String) { * * @return the unique reference to this symbol. */ - def intern: Symbol = synchronized { - internedSymbols.get(name).map(.get).getOrElse(None) match { + def intern: Symbol = internedSymbols.synchronized { + internedSymbols.get(this).map(.get).getOrElse(None) match { case Some(sym) => sym case _ => - internedSymbols(name) = new ref.WeakReference(this); this + internedSymbols(this) = new ref.WeakReference(this); this } } } |