Revision: 2983
http://jnode.svn.sourceforge.net/jnode/?rev=2983&view=rev
Author: lsantha
Date: 2007-01-04 12:22:03 -0800 (Thu, 04 Jan 2007)
Log Message:
-----------
Added support for signature attribute.
Modified Paths:
--------------
trunk/core/src/core/org/jnode/vm/classmgr/ClassDecoder.java
Modified: trunk/core/src/core/org/jnode/vm/classmgr/ClassDecoder.java
===================================================================
--- trunk/core/src/core/org/jnode/vm/classmgr/ClassDecoder.java 2007-01-04 20:20:19 UTC (rev 2982)
+++ trunk/core/src/core/org/jnode/vm/classmgr/ClassDecoder.java 2007-01-04 20:22:03 UTC (rev 2983)
@@ -57,8 +57,10 @@
// VM ClassLoader Code
// ------------------------------------------
- private static char[] SourceFile;
+ private static char[] SourceFileAttrName;
+ private static char[] SignatureAttrName;
+
private static char[] CodeAttrName;
private static char[] ConstantValueAttrName;
@@ -194,7 +196,8 @@
if (ConstantValueAttrName == null) {
ConstantValueAttrName = "ConstantValue".toCharArray();
CodeAttrName = "Code".toCharArray();
- SourceFile = "SourceFile".toCharArray();
+ SourceFileAttrName = "SourceFile".toCharArray();
+ SignatureAttrName = "Signature".toCharArray();
ExceptionsAttrName = "Exceptions".toCharArray();
LineNrTableAttrName = "LineNumberTable".toCharArray();
LocalVariableTableAttrName = "LocalVariableTable".toCharArray();
@@ -412,6 +415,7 @@
VmAnnotation[] rVisAnn = null;
VmAnnotation[] rInvisAnn = null;
String sourceFile = null;
+ String signature = null;
for (int a = 0; a < acount; a++) {
final String attrName = cp.getUTF8(data.getChar());
final int length = data.getInt();
@@ -420,14 +424,17 @@
} else if (VmArray.equals(RuntimeInvisibleAnnotationsAttrName,
attrName)) {
rInvisAnn = readRuntimeAnnotations(data, cp, false);
- } else if (VmArray.equals(SourceFile, attrName)) {
+ } else if (VmArray.equals(SourceFileAttrName, attrName)) {
sourceFile = cp.getUTF8(data.getChar());
+ } else if (VmArray.equals(SignatureAttrName, attrName)) {
+ signature = cp.getUTF8(data.getChar());
} else {
skip(data, length);
}
}
cls.setRuntimeAnnotations(rVisAnn);
cls.setSourceFile(sourceFile);
+ cls.setSignature(signature);
if (rInvisAnn != null) {
cls.addPragmaFlags(getClassPragmaFlags(rInvisAnn, clsName));
}
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|