diff options
author | Hubert Plociniczak <hubert.plociniczak@gmail.com> | 2012-05-07 10:15:35 +0200 |
---|---|---|
committer | Hubert Plociniczak <hubert.plociniczak@gmail.com> | 2012-05-07 10:17:32 +0200 |
commit | a3d4d17b7750fdc121cdb3a6b394bb0489c914cb (patch) | |
tree | 7d4d1e0661377b69c756ed7519df2e9db97e8cf2 /src/compiler/scala/tools/nsc/ast/TreeGen.scala | |
parent | 3631f1dadc8ce2beac86aa618a62120b88bda50c (diff) | |
download | scala-a3d4d17b7750fdc121cdb3a6b394bb0489c914cb.tar.gz scala-a3d4d17b7750fdc121cdb3a6b394bb0489c914cb.tar.bz2 scala-a3d4d17b7750fdc121cdb3a6b394bb0489c914cb.zip |
Part III of the Lazy Vals Saga: Inliner strikes back. Or at least let's hope it will.
Diffstat (limited to 'src/compiler/scala/tools/nsc/ast/TreeGen.scala')
-rw-r--r-- | src/compiler/scala/tools/nsc/ast/TreeGen.scala | 17 |
1 files changed, 8 insertions, 9 deletions
diff --git a/src/compiler/scala/tools/nsc/ast/TreeGen.scala b/src/compiler/scala/tools/nsc/ast/TreeGen.scala index 978d83616b..4cfe2e5cb3 100644 --- a/src/compiler/scala/tools/nsc/ast/TreeGen.scala +++ b/src/compiler/scala/tools/nsc/ast/TreeGen.scala @@ -362,13 +362,12 @@ abstract class TreeGen extends reflect.internal.TreeGen with TreeDSL { def mkDoubleCheckedLocking(clazz: Symbol, cond: Tree, syncBody: List[Tree], stats: List[Tree]): Tree = mkDoubleCheckedLocking(mkAttributedThis(clazz), cond, syncBody, stats) - def mkDoubleCheckedLocking(attrThis: Tree, cond: Tree, syncBody: List[Tree], stats: List[Tree]): Tree = { - If(cond, - Block( - mkSynchronized( - attrThis, - If(cond, Block(syncBody: _*), EmptyTree)) :: - stats: _*), - EmptyTree) - } + def mkDoubleCheckedLocking(attrThis: Tree, cond: Tree, syncBody: List[Tree], stats: List[Tree]): Tree = + If(cond, mkSynchronizedCheck(attrThis, cond, syncBody, stats), EmptyTree) + + def mkSynchronizedCheck(attrThis: Tree, cond: Tree, syncBody: List[Tree], stats: List[Tree]): Tree = + Block(mkSynchronized( + attrThis, + If(cond, Block(syncBody: _*), EmptyTree)) :: + stats: _*) } |