From fabdc86271f694a75e685387fac87f47b6467e33 Mon Sep 17 00:00:00 2001 From: Iulian Dragos Date: Mon, 7 Nov 2005 14:07:13 +0000 Subject: Fixed synchronized blocks. --- sources/scala/tools/nsc/backend/icode/GenICode.scala | 1 + sources/scala/tools/nsc/backend/jvm/GenJVM.scala | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) 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 } -- cgit v1.2.3