From d6c5aeb6f6effcac4a054f0290711aa64ae3c191 Mon Sep 17 00:00:00 2001 From: Philipp Haller Date: Sun, 13 Oct 2013 23:44:18 +0200 Subject: Liveness analysis to avoid memory retention issues - Iterative, backwards data-flow analysis - Make sure fields captured by nested defs are never zeroed out. This is done elegantly by declaring such fields a being live at the exit of the final state; thus, they will never be zeroed out. --- src/main/scala/scala/async/internal/AsyncMacro.scala | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'src/main/scala/scala/async/internal/AsyncMacro.scala') diff --git a/src/main/scala/scala/async/internal/AsyncMacro.scala b/src/main/scala/scala/async/internal/AsyncMacro.scala index 8d93567..1c97ca7 100644 --- a/src/main/scala/scala/async/internal/AsyncMacro.scala +++ b/src/main/scala/scala/async/internal/AsyncMacro.scala @@ -20,7 +20,7 @@ object AsyncMacro { private[async] trait AsyncMacro extends TypingTransformers with AnfTransform with TransformUtils with Lifter - with ExprBuilder with AsyncTransform with AsyncAnalysis { + with ExprBuilder with AsyncTransform with AsyncAnalysis with LiveVariables { val global: Global val callSiteTyper: global.analyzer.Typer -- cgit v1.2.3