[kaffe] CVS kaffe-extras (guilhem): New patches for KJC.
Kaffe CVS
cvs-commits at kaffe.org
Tue Oct 28 09:02:02 PST 2003
PatchSet 17
Date: 2003/10/28 17:01:15
Author: guilhem
Branch: HEAD
Tag: (none)
Log:
New patches for KJC.
The former patch about method invokation wasn't completely clean. That one
corresponds to the KJC in kaffe's CVS.
The patch about inner class access fixes the global modifier of a generated
classfile concerning an inner class: if it has to contain ACC_PROTECTED (but
can't because of the spec) it is transformed in a ACC_PUBLIC for compatibility
with the JDK.
Members:
build.xml:1.9->1.10
patches/kjc-inner-access.diff:INITIAL->1.1
patches/kjc-method-call.diff:1.3->1.4
Index: kaffe-extras/build.xml
diff -u kaffe-extras/build.xml:1.9 kaffe-extras/build.xml:1.10
--- kaffe-extras/build.xml:1.9 Sat Sep 27 12:26:39 2003
+++ kaffe-extras/build.xml Tue Oct 28 17:01:15 2003
@@ -248,6 +248,9 @@
<patch patchfile="${patches_dir}/kjc-method-call.diff"
strip="1"
dir="${kjcsuite_dir}"/>
+ <patch patchfile="${patches_dir}/kjc-inner-access.diff"
+ strip="1"
+ dir="${kjcsuite_dir}"/>
<touch file="${kjcsuite_unpacked_stamp}"/>
</target>
===================================================================
Checking out kaffe-extras/patches/kjc-inner-access.diff
RCS: /home/cvs/kaffe/kaffe-extras/patches/kjc-inner-access.diff,v
VERS: 1.1
***************
--- /dev/null Sun Aug 4 19:57:58 2002
+++ kaffe-extras/patches/kjc-inner-access.diff Tue Oct 28 17:01:17 2003
@@ -0,0 +1,17 @@
+--- kjc-suite-2.1B.old/src/bytecode/classfile/ClassInfo.java 2003-09-28 21:44:43.000000000 +0200
++++ kjc-suite-2.1B/src/bytecode/classfile/ClassInfo.java 2003-10-28 17:40:27.000000000 +0100
+@@ -408,7 +408,13 @@
+ constantPool.write(out);
+
+ // Class hierarchy/access
+- out.writeShort((getModifiers() | ACC_SUPER) & MODIFIER_MASK);
++ int top_modifiers;
++
++ top_modifiers = (getModifiers() | ACC_SUPER);
++ if ((top_modifiers & ACC_PROTECTED) != 0) {
++ top_modifiers |= ACC_PUBLIC;
++ }
++ out.writeShort(top_modifiers & MODIFIER_MASK);
+ out.writeShort(thisClass.getIndex());
+ out.writeShort(superClass == null ? 0 : superClass.getIndex());
+
Index: kaffe-extras/patches/kjc-method-call.diff
diff -u kaffe-extras/patches/kjc-method-call.diff:1.3 kaffe-extras/patches/kjc-method-call.diff:1.4
--- kaffe-extras/patches/kjc-method-call.diff:1.3 Sun Sep 28 19:06:50 2003
+++ kaffe-extras/patches/kjc-method-call.diff Tue Oct 28 17:01:16 2003
@@ -1,5 +1,5 @@
---- kjc-suite-2.1B/src/kjc/CMethod.java 2003-09-28 21:02:42.000000000 +0200
-+++ kjc-suite-2.1B.new/src/kjc/CMethod.java 2003-09-28 20:46:29.000000000 +0200
+--- kjc-suite-2.1B/src/kjc/CMethod.java 2003-09-28 21:43:46.000000000 +0200
++++ kjc-suite-2.1B.new/src/kjc/CMethod.java 2003-09-28 21:28:25.000000000 +0200
@@ -550,6 +550,7 @@
// ----------------------------------------------------------------------
// CODE GENERATION
@@ -8,7 +8,7 @@
/**
* Generates a sequence of bytecode
-@@ -557,7 +558,25 @@
+@@ -557,16 +558,34 @@
* @param nonVirtual force non-virtual dispatching
*/
public void genCode(GenerationContext context, boolean nonVirtual) {
@@ -32,9 +32,11 @@
+ throw new IllegalArgumentException(
+ "prefixClass " + prefixClass + " doesn't descends from the owner " + owner + " of the method " + getIdent());
- if (getOwner().isInterface()) {
+- if (getOwner().isInterface()) {
++ if (prefixClass.isInterface()) {
int size = 0;
-@@ -566,7 +585,7 @@
+
+ for (int i = 0; i < parameters.length; i++) {
size += parameters[i].getSize();
}
@@ -52,7 +54,7 @@
getIdent(),
getSignature());
}
---- kjc-suite-2.1B/src/kjc/JMethodCallExpression.java 2003-09-28 21:02:42.000000000 +0200
+--- kjc-suite-2.1B/src/kjc/JMethodCallExpression.java 2003-09-28 21:43:46.000000000 +0200
+++ kjc-suite-2.1B.new/src/kjc/JMethodCallExpression.java 2003-09-28 20:58:09.000000000 +0200
@@ -40,7 +40,7 @@
*/
More information about the kaffe
mailing list