summaryrefslogtreecommitdiff
path: root/src/compiler/scala/tools/nsc/CompilationUnits.scala
diff options
context:
space:
mode:
authorMartin Odersky <odersky@gmail.com>2006-06-01 14:27:39 +0000
committerMartin Odersky <odersky@gmail.com>2006-06-01 14:27:39 +0000
commit4150f7e6fc64cd8d78d48cf275955b90d5c8b475 (patch)
tree0c601da1530d5eb0c1afcfa6ea7cd3f41daeff65 /src/compiler/scala/tools/nsc/CompilationUnits.scala
parentc49cb64a8af13b608fb5c974b377086b19b16e9e (diff)
downloadscala-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.scala16
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
+ }
}
}