summaryrefslogtreecommitdiff
path: root/sources/scalac/backend
diff options
context:
space:
mode:
authorschinz <schinz@epfl.ch>2003-08-22 07:05:56 +0000
committerschinz <schinz@epfl.ch>2003-08-22 07:05:56 +0000
commit54886f80121b45b0772235702bd06033f3f39c14 (patch)
tree17b03b6c95a0c4e1f0a338df2b4c4c0b38d0e481 /sources/scalac/backend
parent20aa76ad3a2768e23f7c47c63b4448e386276e67 (diff)
downloadscala-54886f80121b45b0772235702bd06033f3f39c14.tar.gz
scala-54886f80121b45b0772235702bd06033f3f39c14.tar.bz2
scala-54886f80121b45b0772235702bd06033f3f39c14.zip
- adapted to the new version of FJBG
Diffstat (limited to 'sources/scalac/backend')
-rw-r--r--sources/scalac/backend/jvm/GenJVM.java43
1 files changed, 23 insertions, 20 deletions
diff --git a/sources/scalac/backend/jvm/GenJVM.java b/sources/scalac/backend/jvm/GenJVM.java
index 0b5709a638..1e49389425 100644
--- a/sources/scalac/backend/jvm/GenJVM.java
+++ b/sources/scalac/backend/jvm/GenJVM.java
@@ -86,14 +86,15 @@ class GenJVM {
protected final Definitions defs;
protected final Primitives prims;
- static {
- JFactory.setInstance(new JFactory());
- }
+ protected final FJBGContext fjbgContext;
public GenJVM(Global global) {
this.global = global;
this.defs = global.definitions;
this.prims = global.primitives;
+
+ this.fjbgContext = new FJBGContext();
+
initTypeMap();
initArithPrimMap();
}
@@ -1169,13 +1170,13 @@ class GenJVM {
String mirrorName = modClass.getName();
String mainClassName = mirrorName.substring(0, mirrorName.length() - 1);
- JClass mainClass = new JClass(JAccessFlags.ACC_SUPER
- | JAccessFlags.ACC_PUBLIC
- | JAccessFlags.ACC_FINAL,
- mainClassName,
- JAVA_LANG_OBJECT,
- JClass.NO_INTERFACES,
- ctx.sourceFileName);
+ JClass mainClass = fjbgContext.JClass(JAccessFlags.ACC_SUPER
+ | JAccessFlags.ACC_PUBLIC
+ | JAccessFlags.ACC_FINAL,
+ mainClassName,
+ JAVA_LANG_OBJECT,
+ JClass.NO_INTERFACES,
+ ctx.sourceFileName);
JMethod[] methods = modClass.getMethods();
for (int i = 0; i < methods.length; ++i) {
@@ -1226,10 +1227,12 @@ class GenJVM {
if (global.symdata.containsKey(className)) {
Pickle pickle = (Pickle)global.symdata.get(className);
- JOtherAttribute scalaAttr = new JOtherAttribute(cls,
- SCALA_ATTR,
- pickle.bytes,
- pickle.size());
+ JOtherAttribute scalaAttr =
+ fjbgContext.JOtherAttribute(cls,
+ cls,
+ SCALA_ATTR,
+ pickle.bytes,
+ pickle.size());
cls.addAttribute(scalaAttr);
}
}
@@ -1456,12 +1459,12 @@ class GenJVM {
interfaceNames[i - offset] = javaName(baseSym);
}
- JClass cls = new JClass(modifiersStoJ(cSym.flags)
- | JAccessFlags.ACC_SUPER,
- javaName,
- superClassName,
- interfaceNames,
- ctx.sourceFileName);
+ JClass cls = fjbgContext.JClass(modifiersStoJ(cSym.flags)
+ | JAccessFlags.ACC_SUPER,
+ javaName,
+ superClassName,
+ interfaceNames,
+ ctx.sourceFileName);
return ctx.withClass(cls, cSym.isModuleClass());
}