summaryrefslogtreecommitdiff
path: root/src/compiler/scala/tools/nsc/backend/icode/analysis/TypeFlowAnalysis.scala
diff options
context:
space:
mode:
authorIulian Dragos <jaguarul@gmail.com>2006-04-06 09:49:46 +0000
committerIulian Dragos <jaguarul@gmail.com>2006-04-06 09:49:46 +0000
commit9ce18b19b66f73cd872158b6b28efd480fc5c5d1 (patch)
tree61885ddf670127e4b85f23f6d39d9c7ca1de79c2 /src/compiler/scala/tools/nsc/backend/icode/analysis/TypeFlowAnalysis.scala
parent99a204f18789c0e628cd73b8cb485fc46e57e3de (diff)
downloadscala-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.scala10
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) {