aboutsummaryrefslogtreecommitdiff
path: root/src/dotty/tools/dotc/core/tasty/TreePickler.scala
diff options
context:
space:
mode:
authorDmitry Petrashko <dmitry.petrashko@gmail.com>2015-12-20 15:35:05 +0100
committerDmitry Petrashko <dmitry.petrashko@gmail.com>2015-12-20 15:45:05 +0100
commita3b10d134401f21c33ce51abd65d3404700ed479 (patch)
treeae1be596e48c97c2d0d1a4479cb7ded026fa23fc /src/dotty/tools/dotc/core/tasty/TreePickler.scala
parent68ce6e764db1e41408fcc3ad7c9874836874cd94 (diff)
downloaddotty-a3b10d134401f21c33ce51abd65d3404700ed479.tar.gz
dotty-a3b10d134401f21c33ce51abd65d3404700ed479.tar.bz2
dotty-a3b10d134401f21c33ce51abd65d3404700ed479.zip
Postpone tree compaction till all phases finish operating TASTY.
Linker adds new sections. Wait for sections to be added and then compact.
Diffstat (limited to 'src/dotty/tools/dotc/core/tasty/TreePickler.scala')
-rw-r--r--src/dotty/tools/dotc/core/tasty/TreePickler.scala11
1 files changed, 8 insertions, 3 deletions
diff --git a/src/dotty/tools/dotc/core/tasty/TreePickler.scala b/src/dotty/tools/dotc/core/tasty/TreePickler.scala
index 5c0d4bd67..bb6c3cd2e 100644
--- a/src/dotty/tools/dotc/core/tasty/TreePickler.scala
+++ b/src/dotty/tools/dotc/core/tasty/TreePickler.scala
@@ -541,12 +541,17 @@ class TreePickler(pickler: TastyPickler) {
}
def pickle(trees: List[Tree])(implicit ctx: Context) = {
+ trees.foreach(tree => if (!tree.isEmpty) pickleTree(tree))
+ assert(forwardSymRefs.isEmpty, i"unresolved symbols: ${forwardSymRefs.keySet.toList}%, %")
+ }
+
+ def compactify() = {
+ buf.compactify()
+ assert(forwardSymRefs.isEmpty, s"unresolved symbols: ${forwardSymRefs.keySet.toList}%, %")
+
def updateMapWithDeltas[T](mp: collection.mutable.Map[T, Addr]) =
for (key <- mp.keysIterator.toBuffer[T]) mp(key) = adjusted(mp(key))
- trees.foreach(tree => if (!tree.isEmpty) pickleTree(tree))
- assert(forwardSymRefs.isEmpty, i"unresolved symbols: ${forwardSymRefs.keySet.toList}%, %")
- compactify()
updateMapWithDeltas(symRefs)
}
}