diff options
author | Philipp Haller <hallerp@gmail.com> | 2013-10-13 23:44:18 +0200 |
---|---|---|
committer | Philipp Haller <hallerp@gmail.com> | 2013-10-22 14:40:01 +0200 |
commit | d6c5aeb6f6effcac4a054f0290711aa64ae3c191 (patch) | |
tree | c661375d5d9299466936c9f3df6949b4346e1a85 /src/main/scala/scala/async/internal/AsyncMacro.scala | |
parent | 9ecbb7a54ed0e9927a0efba23fa4e61d06be761e (diff) | |
download | scala-async-d6c5aeb6f6effcac4a054f0290711aa64ae3c191.tar.gz scala-async-d6c5aeb6f6effcac4a054f0290711aa64ae3c191.tar.bz2 scala-async-d6c5aeb6f6effcac4a054f0290711aa64ae3c191.zip |
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.
Diffstat (limited to 'src/main/scala/scala/async/internal/AsyncMacro.scala')
-rw-r--r-- | src/main/scala/scala/async/internal/AsyncMacro.scala | 2 |
1 files changed, 1 insertions, 1 deletions
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 |