[kaffe] Fix for Jim's patch

Guilhem Lavaux guilhem@kaffe.org
Thu Jul 31 01:03:01 2003


This is a multi-part message in MIME format.
--------------040108030405000501020405
Content-Type: text/plain; charset=us-ascii; format=flowed
Content-Transfer-Encoding: 7bit

Hi again,

Here the last patch to KJC for today ;-). I fix previous Jim's patch so 
it can also compile
source file in the current directory with "javac source.java". I 
resubmit the entire Jim's patch
with the slight modification.

Cheers,

Guilhem.

--------------040108030405000501020405
Content-Type: text/plain;
 name="patch.destination"
Content-Transfer-Encoding: 7bit
Content-Disposition: inline;
 filename="patch.destination"

--- kopi-2.1B.orig/src/bytecode/classfile/ClassInfo.java	2002-07-15 20:53:29.000000000 +0200
+++ kopi-2.1B.new/src/bytecode/classfile/ClassInfo.java	2003-07-31 10:05:18.000000000 +0200
@@ -44,6 +44,8 @@
   // CONSTRUCTORS
   // --------------------------------------------------------------------
 
+	private String sourceDir;
+
   /**
    * Constructs a class info structure.
    *
@@ -64,6 +66,7 @@
 		   FieldInfo[] fields,
 		   MethodInfo[] methods,
 		   InnerClassInfo[] innerClasses,
+		   String sourceDir,
 		   String sourceFile,
                    String genericSignature,
 		   boolean deprecated,
@@ -81,7 +84,11 @@
     this.fields = fields;
     this.methods = methods;
     this.interfaces = interfaces;
-
+    if (sourceDir == null || sourceDir.equals(""))
+	this.sourceDir = ".";
+    else
+	this.sourceDir = sourceDir;
+	
     this.attributes = new AttributeList(innerClasses != null ? new InnerClassTable(innerClasses) : null,
 					sourceFile != null ? new SourceFileAttribute(sourceFile) : null,
 					genericSignature != null ? new SignatureAttribute(genericSignature) : null,
@@ -111,6 +118,7 @@
 		   Vector fields,
 		   Vector methods,
 		   InnerClassInfo[] innerClasses,
+		   String sourceDir,
 		   String sourceFile,
                    String genericSignature,
 		   boolean deprecated,
@@ -123,6 +131,7 @@
 	 (FieldInfo[])Utils.toArray(fields, FieldInfo.class),
 	 (MethodInfo[])Utils.toArray(methods, MethodInfo.class),
 	 innerClasses,
+	 sourceDir,
 	 sourceFile,
          genericSignature,
 	 deprecated,
@@ -444,13 +453,14 @@
 //     if (destination != null && destination != "") {
 //       if (classPath[0] != null && classPath[0] != "") {
     if (destination == null || destination.equals("")) {
-      destination = ".";
-    }
- 
+    	destination = sourceDir;
+    } else {
+   
     if (classPath[0] != null && !classPath[0].equals("")) {
       // the class is part of a package
       destination += File.separator + classPath[0].replace('/', File.separatorChar);
     }
+    }
 
       // check that destination exists or else create it
       File	destDir = new File(destination);
--- kopi-2.1B.orig/src/kjc/CSourceClass.java	2002-07-15 20:53:32.000000000 +0200
+++ kopi-2.1B.new/src/kjc/CSourceClass.java	2003-07-31 09:48:32.000000000 +0200
@@ -416,7 +416,7 @@
   {
     decl = null; // garbage
     String[]	classPath = Utils.splitQualifiedName(getSourceFile(), File.separatorChar);
-
+    
     try {
       ClassInfo	classInfo = new ClassInfo((short)(getModifiers() & (~ACC_STATIC)),
 					  getQualifiedName(),
@@ -425,6 +425,7 @@
 					  genFields(factory),
 					  genMethods(optimizer, factory),
 					  genInnerClasses(),
+					  classPath[0],
 					  classPath[1],
                                           getSuperClass() == null ? null : getGenericSignature(),
 					  isDeprecated(),

--------------040108030405000501020405--