summaryrefslogtreecommitdiff
path: root/src/compiler/scala/tools/nsc/typechecker/NamesDefaults.scala
diff options
context:
space:
mode:
authorLukas Rytz <lukas.rytz@epfl.ch>2012-04-10 23:03:41 +0200
committerLukas Rytz <lukas.rytz@epfl.ch>2012-04-10 23:09:50 +0200
commitf93e2189dd4f6bf129e70f85c03af34e1b507377 (patch)
treebb54c8b7f6287bcead1e3d02aea0316258a51223 /src/compiler/scala/tools/nsc/typechecker/NamesDefaults.scala
parentb448f13d431a1a4e9d23c6acbf4bd15ccb647e3f (diff)
downloadscala-f93e2189dd4f6bf129e70f85c03af34e1b507377.tar.gz
scala-f93e2189dd4f6bf129e70f85c03af34e1b507377.tar.bz2
scala-f93e2189dd4f6bf129e70f85c03af34e1b507377.zip
Fix memory leak related to default arguments in presentation compiler.
This bug exists for a long time, but was triggered / discovered only lately by the default argument of mkParams in 118aef558f. This reverts the workaroud commit 19b6ad5ee4. The fix is tested by test/files/presentation/memory-leaks which runs the presentation compiler several times on Typers.scala. I could not reproduce the memory leak in a smaller test case.
Diffstat (limited to 'src/compiler/scala/tools/nsc/typechecker/NamesDefaults.scala')
-rw-r--r--src/compiler/scala/tools/nsc/typechecker/NamesDefaults.scala3
1 files changed, 2 insertions, 1 deletions
diff --git a/src/compiler/scala/tools/nsc/typechecker/NamesDefaults.scala b/src/compiler/scala/tools/nsc/typechecker/NamesDefaults.scala
index 2573678f8c..4d84bf4af2 100644
--- a/src/compiler/scala/tools/nsc/typechecker/NamesDefaults.scala
+++ b/src/compiler/scala/tools/nsc/typechecker/NamesDefaults.scala
@@ -8,6 +8,7 @@ package typechecker
import symtab.Flags._
import scala.collection.mutable
+import scala.ref.WeakReference
/**
* @author Lukas Rytz
@@ -20,7 +21,7 @@ trait NamesDefaults { self: Analyzer =>
import NamesDefaultsErrorsGen._
val defaultParametersOfMethod =
- perRunCaches.newWeakMap[Symbol, Set[Symbol]]() withDefaultValue Set()
+ perRunCaches.newWeakMap[Symbol, Set[WeakReference[Symbol]]]() withDefaultValue Set()
case class NamedApplyInfo(
qual: Option[Tree],