diff options
author | Iulian Dragos <jaguarul@gmail.com> | 2006-04-06 09:49:46 +0000 |
---|---|---|
committer | Iulian Dragos <jaguarul@gmail.com> | 2006-04-06 09:49:46 +0000 |
commit | 9ce18b19b66f73cd872158b6b28efd480fc5c5d1 (patch) | |
tree | 61885ddf670127e4b85f23f6d39d9c7ca1de79c2 /src/compiler/scala/tools/nsc/backend/icode/analysis/TypeFlowAnalysis.scala | |
parent | 99a204f18789c0e628cd73b8cb485fc46e57e3de (diff) | |
download | scala-9ce18b19b66f73cd872158b6b28efd480fc5c5d1.tar.gz scala-9ce18b19b66f73cd872158b6b28efd480fc5c5d1.tar.bz2 scala-9ce18b19b66f73cd872158b6b28efd480fc5c5d1.zip |
Fixed several bugs in Inliners and the monitor ...
Fixed several bugs in Inliners and the monitor crash in jvm.
Diffstat (limited to 'src/compiler/scala/tools/nsc/backend/icode/analysis/TypeFlowAnalysis.scala')
-rw-r--r-- | src/compiler/scala/tools/nsc/backend/icode/analysis/TypeFlowAnalysis.scala | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/src/compiler/scala/tools/nsc/backend/icode/analysis/TypeFlowAnalysis.scala b/src/compiler/scala/tools/nsc/backend/icode/analysis/TypeFlowAnalysis.scala index c2e1169f0b..91b4ee4e68 100644 --- a/src/compiler/scala/tools/nsc/backend/icode/analysis/TypeFlowAnalysis.scala +++ b/src/compiler/scala/tools/nsc/backend/icode/analysis/TypeFlowAnalysis.scala @@ -103,9 +103,10 @@ abstract class TypeFlowAnalysis { val STRING = icodes.REFERENCE(TypeFlowAnalysis.this.global.definitions.StringClass); var method: IMethod = _; - def this(m: icodes.IMethod) = { - this(); + /** Initialize the in/out maps for the analysis of the given method. */ + def init(m: icodes.IMethod): Unit = { this.method = m; + init { worklist += m.code.startBlock; worklist ++= (m.exh map (.startBlock)); @@ -122,6 +123,11 @@ abstract class TypeFlowAnalysis { } } + def this(m: icodes.IMethod) = { + this(); + init(m) + } + def run = { forwardAnalysis(blockTransfer); if (settings.debug.value) { |