summaryrefslogtreecommitdiff
path: root/src/compiler/scala/tools/nsc/Global.scala
diff options
context:
space:
mode:
authorEugene Burmako <xeno.by@gmail.com>2012-09-24 14:31:17 +0200
committerEugene Burmako <xeno.by@gmail.com>2012-09-27 13:48:30 +0200
commit8c7d94ef9eea927088392fd2d0e6bb37f0641ad5 (patch)
tree7633ea75b2148d4c6783224f91c7a9ba7caa31e9 /src/compiler/scala/tools/nsc/Global.scala
parentcf08f25d598a1d44ed4440b1cc1097a5869aefdd (diff)
downloadscala-8c7d94ef9eea927088392fd2d0e6bb37f0641ad5.tar.gz
scala-8c7d94ef9eea927088392fd2d0e6bb37f0641ad5.tar.bz2
scala-8c7d94ef9eea927088392fd2d0e6bb37f0641ad5.zip
SI-6412 alleviates leaks in toolboxes, attempt #2
Turns importer caches into fully weak hash maps, and also applies manual cleanup to toolboxes every time they are used. It's not enough, because reflection-mem-typecheck test is still leaking at a rate of ~100kb per typecheck, but it's much better than it was before. We'll fix the rest later, after 2.10.0-final. For more information, see https://issues.scala-lang.org/browse/SI-6412 and http://groups.google.com/group/scala-internals/browse_thread/thread/eabcf3d406dab8b2 In comparison with https://github.com/scala/scala/commit/b403c1d, the original commit that implemented the fix, this one doesn't crash tests. The problem with the original commit was that it called tryFixup() before updating the cache, leading to stack overflows.
Diffstat (limited to 'src/compiler/scala/tools/nsc/Global.scala')
-rw-r--r--src/compiler/scala/tools/nsc/Global.scala4
1 files changed, 2 insertions, 2 deletions
diff --git a/src/compiler/scala/tools/nsc/Global.scala b/src/compiler/scala/tools/nsc/Global.scala
index 58fcee4b30..0fbd930ad7 100644
--- a/src/compiler/scala/tools/nsc/Global.scala
+++ b/src/compiler/scala/tools/nsc/Global.scala
@@ -1079,12 +1079,12 @@ class Global(var currentSettings: Settings, var reporter: Reporter)
* of what file was being compiled when it broke. Since I really
* really want to know, this hack.
*/
- private var lastSeenSourceFile: SourceFile = NoSourceFile
+ protected var lastSeenSourceFile: SourceFile = NoSourceFile
/** Let's share a lot more about why we crash all over the place.
* People will be very grateful.
*/
- private var lastSeenContext: analyzer.Context = null
+ protected var lastSeenContext: analyzer.Context = null
/** The currently active run
*/