diff options
author | Martin Odersky <odersky@gmail.com> | 2006-06-01 14:27:39 +0000 |
---|---|---|
committer | Martin Odersky <odersky@gmail.com> | 2006-06-01 14:27:39 +0000 |
commit | 4150f7e6fc64cd8d78d48cf275955b90d5c8b475 (patch) | |
tree | 0c601da1530d5eb0c1afcfa6ea7cd3f41daeff65 /src/compiler/scala/tools/nsc/CompilationUnits.scala | |
parent | c49cb64a8af13b608fb5c974b377086b19b16e9e (diff) | |
download | scala-4150f7e6fc64cd8d78d48cf275955b90d5c8b475.tar.gz scala-4150f7e6fc64cd8d78d48cf275955b90d5c8b475.tar.bz2 scala-4150f7e6fc64cd8d78d48cf275955b90d5c8b475.zip |
some changes to plug space leaks
Diffstat (limited to 'src/compiler/scala/tools/nsc/CompilationUnits.scala')
-rw-r--r-- | src/compiler/scala/tools/nsc/CompilationUnits.scala | 16 |
1 files changed, 15 insertions, 1 deletions
diff --git a/src/compiler/scala/tools/nsc/CompilationUnits.scala b/src/compiler/scala/tools/nsc/CompilationUnits.scala index 64a3cc97b1..6633f7d311 100644 --- a/src/compiler/scala/tools/nsc/CompilationUnits.scala +++ b/src/compiler/scala/tools/nsc/CompilationUnits.scala @@ -13,10 +13,18 @@ import scala.collection.mutable.HashSet; trait CompilationUnits requires Global { + private var unitCount = 0; + class CompilationUnit(val source: SourceFile) { + unitCount = unitCount + 1 + if (settings.statistics.value) Console.println("creating unit: "+unitCount) + override def finalize() = { + unitCount = unitCount - 1 + if (settings.statistics.value) Console.println("collecting unit: "+unitCount) + } /** the fresh name creator */ - val fresh = new FreshNameCreator; + var fresh = new FreshNameCreator; /** the content of the compilation unit in tree form */ var body: Tree = EmptyTree; @@ -36,6 +44,12 @@ trait CompilationUnits requires Global { def warning(pos: int, msg: String) = reporter.warning(position(pos), msg); override def toString() = source.toString(); + def clear() = { + fresh = null + body = null + depends.clear + errorPositions.clear + } } } |