summaryrefslogtreecommitdiff
path: root/sources/scalac/backend
diff options
context:
space:
mode:
authorschinz <schinz@epfl.ch>2003-08-05 14:56:41 +0000
committerschinz <schinz@epfl.ch>2003-08-05 14:56:41 +0000
commitd27a593dc1fb4936161651cdaa8a9207c6c661dd (patch)
tree712b5000565b617be15c3b5bfe7fa3bf331167c9 /sources/scalac/backend
parent8c0290713cc8b20ce3076a984a2849a5a1458aae (diff)
downloadscala-d27a593dc1fb4936161651cdaa8a9207c6c661dd.tar.gz
scala-d27a593dc1fb4936161651cdaa8a9207c6c661dd.tar.bz2
scala-d27a593dc1fb4936161651cdaa8a9207c6c661dd.zip
- activated code to write pickle data to class ...
- activated code to write pickle data to class files
Diffstat (limited to 'sources/scalac/backend')
-rw-r--r--sources/scalac/backend/jvm/GenJVM.java15
1 files changed, 13 insertions, 2 deletions
diff --git a/sources/scalac/backend/jvm/GenJVM.java b/sources/scalac/backend/jvm/GenJVM.java
index 817ca9b55b..c3d0dd290e 100644
--- a/sources/scalac/backend/jvm/GenJVM.java
+++ b/sources/scalac/backend/jvm/GenJVM.java
@@ -16,6 +16,7 @@ import scalac.util.*;
import scalac.ast.*;
import scalac.symtab.*;
import scalac.symtab.classfile.ClassfileConstants;
+import scalac.symtab.classfile.Pickle;
import scalac.transformer.*;
import ch.epfl.lamp.util.Pair;
@@ -61,6 +62,8 @@ class GenJVM {
protected final static String SCALA_UNIT = "scala.Unit";
protected final static String SCALA_UNIT_VALUE = "UNIT_VAL";
+ protected final static String SCALA_ATTR = ClassfileConstants.SCALA_N.toString();
+
protected final static String MODULE_INSTANCE_FIELD_NAME = "MODULE$";
protected final static String CONSTRUCTOR_STRING =
@@ -1206,8 +1209,16 @@ class GenJVM {
* symbol table is saved.
*/
protected void addScalaAttr(JClass cls) {
-// JOtherAttribute scalaAttr = new JOtherAttribute(...);
-// cls.addAttribute(scalaAttr);
+ Name className = Name.fromString(cls.getName());
+
+ if (global.symdata.containsKey(className)) {
+ Pickle pickle = (Pickle)global.symdata.get(className);
+ JOtherAttribute scalaAttr = new JOtherAttribute(cls,
+ SCALA_ATTR,
+ pickle.bytes,
+ pickle.size());
+ cls.addAttribute(scalaAttr);
+ }
}
/// Names