summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorIulian Dragos <jaguarul@gmail.com>2005-11-07 14:07:13 +0000
committerIulian Dragos <jaguarul@gmail.com>2005-11-07 14:07:13 +0000
commitfabdc86271f694a75e685387fac87f47b6467e33 (patch)
treef11fe64347a703c5e8231172882f1fe7e6b749be
parent11bd0d61869a5cdec959c88b82d29aebadc9b567 (diff)
downloadscala-fabdc86271f694a75e685387fac87f47b6467e33.tar.gz
scala-fabdc86271f694a75e685387fac87f47b6467e33.tar.bz2
scala-fabdc86271f694a75e685387fac87f47b6467e33.zip
Fixed synchronized blocks.
-rw-r--r--sources/scala/tools/nsc/backend/icode/GenICode.scala1
-rw-r--r--sources/scala/tools/nsc/backend/jvm/GenJVM.scala2
2 files changed, 2 insertions, 1 deletions
diff --git a/sources/scala/tools/nsc/backend/icode/GenICode.scala b/sources/scala/tools/nsc/backend/icode/GenICode.scala
index 009b6fb8b2..a21fa72aa1 100644
--- a/sources/scala/tools/nsc/backend/icode/GenICode.scala
+++ b/sources/scala/tools/nsc/backend/icode/GenICode.scala
@@ -634,6 +634,7 @@ abstract class GenICode extends SubComponent {
ctx.method.addLocal(monitor);
ctx1 = genLoadQualifier(fun, ctx1);
+ ctx1.bb.emit(DUP(ANY_REF_CLASS));
ctx1.bb.emit(STORE_LOCAL(monitor, false));
ctx1.bb.emit(MONITOR_ENTER(), tree.pos);
diff --git a/sources/scala/tools/nsc/backend/jvm/GenJVM.scala b/sources/scala/tools/nsc/backend/jvm/GenJVM.scala
index 13a39289a2..655193dc15 100644
--- a/sources/scala/tools/nsc/backend/jvm/GenJVM.scala
+++ b/sources/scala/tools/nsc/backend/jvm/GenJVM.scala
@@ -877,7 +877,7 @@ abstract class GenJVM extends SubComponent {
jf = jf | (if ((sym hasFlag Flags.ABSTRACT) ||
(sym hasFlag Flags.DEFERRED)) ACC_ABSTRACT else 0);
jf = jf | (if (sym hasFlag Flags.INTERFACE) ACC_INTERFACE else 0);
- jf = jf | (if (sym hasFlag Flags.FINAL) ACC_FINAL else 0);
+ jf = jf | (if ((sym hasFlag Flags.FINAL) && !sym.enclClass.hasFlag(Flags.INTERFACE)) ACC_FINAL else 0);
jf = jf | (if (isStaticSymbol(sym)) ACC_STATIC else 0);
jf
}