]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
* tools/gnu/classpath/tools/javah/JniStubPrinter.java
authortromey <tromey@138bc75d-0d04-0410-961f-82ee72b054a4>
Fri, 16 Mar 2007 22:48:27 +0000 (22:48 +0000)
committertromey <tromey@138bc75d-0d04-0410-961f-82ee72b054a4>
Fri, 16 Mar 2007 22:48:27 +0000 (22:48 +0000)
(printClass): Added filename argument.
* tools/gnu/classpath/tools/javah/JniIncludePrinter.java
(printClass): Added filename argument.
* tools/gnu/classpath/tools/javah/CniIncludePrinter.java
(printClass): Use user's file name.
* tools/gnu/classpath/tools/javah/CniStubPrinter.java
(printClass): Use user's file name.
* tools/gnu/classpath/tools/javah/Printer.java (printClass): Added
filename argument.
* tools/gnu/classpath/tools/javah/Main.java (getParser): Fix '-v'
argument order.
(writeHeaders): Use a HashMap.
(run): Put class name into HashMap for writeHeaders.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@123000 138bc75d-0d04-0410-961f-82ee72b054a4

23 files changed:
libjava/classpath/ChangeLog
libjava/classpath/tools/classes/gnu/classpath/tools/javah/CniIncludePrinter.class
libjava/classpath/tools/classes/gnu/classpath/tools/javah/CniStubPrinter.class
libjava/classpath/tools/classes/gnu/classpath/tools/javah/JniIncludePrinter.class
libjava/classpath/tools/classes/gnu/classpath/tools/javah/JniStubPrinter.class
libjava/classpath/tools/classes/gnu/classpath/tools/javah/Main$1.class
libjava/classpath/tools/classes/gnu/classpath/tools/javah/Main$10.class
libjava/classpath/tools/classes/gnu/classpath/tools/javah/Main$2.class
libjava/classpath/tools/classes/gnu/classpath/tools/javah/Main$3.class
libjava/classpath/tools/classes/gnu/classpath/tools/javah/Main$4.class
libjava/classpath/tools/classes/gnu/classpath/tools/javah/Main$5.class
libjava/classpath/tools/classes/gnu/classpath/tools/javah/Main$6.class
libjava/classpath/tools/classes/gnu/classpath/tools/javah/Main$7.class
libjava/classpath/tools/classes/gnu/classpath/tools/javah/Main$8.class
libjava/classpath/tools/classes/gnu/classpath/tools/javah/Main$9.class
libjava/classpath/tools/classes/gnu/classpath/tools/javah/Main.class
libjava/classpath/tools/classes/gnu/classpath/tools/javah/Printer.class
libjava/classpath/tools/gnu/classpath/tools/javah/CniIncludePrinter.java
libjava/classpath/tools/gnu/classpath/tools/javah/CniStubPrinter.java
libjava/classpath/tools/gnu/classpath/tools/javah/JniIncludePrinter.java
libjava/classpath/tools/gnu/classpath/tools/javah/JniStubPrinter.java
libjava/classpath/tools/gnu/classpath/tools/javah/Main.java
libjava/classpath/tools/gnu/classpath/tools/javah/Printer.java

index 985d95928d34bea48678ad14acaf5a105c30d700..0f68f91945233994bdaed0b0b066a049b3369397 100644 (file)
@@ -1,3 +1,20 @@
+2007-03-16  Tom Tromey  <tromey@redhat.com>
+
+       * tools/gnu/classpath/tools/javah/JniStubPrinter.java
+       (printClass): Added filename argument.
+       * tools/gnu/classpath/tools/javah/JniIncludePrinter.java
+       (printClass): Added filename argument.
+       * tools/gnu/classpath/tools/javah/CniIncludePrinter.java
+       (printClass): Use user's file name.
+       * tools/gnu/classpath/tools/javah/CniStubPrinter.java
+       (printClass): Use user's file name.
+       * tools/gnu/classpath/tools/javah/Printer.java (printClass): Added
+       filename argument.
+       * tools/gnu/classpath/tools/javah/Main.java (getParser): Fix '-v'
+       argument order.
+       (writeHeaders): Use a HashMap.
+       (run): Put class name into HashMap for writeHeaders.
+
 2007-03-02  Mario Torre  <neugens@limasoftware.net>
 
        PR classpath/31017:
index 13a0a99fef3347a7278b3ba5d96eaab2dc15f35e..08bcc36cc044aa003ae3ca8d62c1e264a69cad00 100644 (file)
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/javah/CniIncludePrinter.class and b/libjava/classpath/tools/classes/gnu/classpath/tools/javah/CniIncludePrinter.class differ
index c3cf12dda49f933cd0ab83648deb30764edc63c5..8726cdd216e068bca03cd1c32a70658cad09fb81 100644 (file)
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/javah/CniStubPrinter.class and b/libjava/classpath/tools/classes/gnu/classpath/tools/javah/CniStubPrinter.class differ
index a89e0d2e9a81c37a11c65fae9aa007e58c58f561..690b2b932dc38d9f586db6cef8acc036abd7fc79 100644 (file)
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/javah/JniIncludePrinter.class and b/libjava/classpath/tools/classes/gnu/classpath/tools/javah/JniIncludePrinter.class differ
index ad9620710b8c8194d7541ada72beca3a2d292563..a0f008dbfd898387934b0ce3380b5adaefcbf665 100644 (file)
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/javah/JniStubPrinter.class and b/libjava/classpath/tools/classes/gnu/classpath/tools/javah/JniStubPrinter.class differ
index ef2f2cff33eb60a5d730342d0b5450db43c1c790..5937740302190b73ab7d6d4d09a4136d21e6666b 100644 (file)
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/javah/Main$1.class and b/libjava/classpath/tools/classes/gnu/classpath/tools/javah/Main$1.class differ
index 8c33dd3413a19a65aee2839778d7f5de2832f304..ed0500f45edc859cf35c24bf56ab21697d31e144 100644 (file)
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/javah/Main$10.class and b/libjava/classpath/tools/classes/gnu/classpath/tools/javah/Main$10.class differ
index 7bebfc82846676948ed5d1cb37f0b0cbb9fd1f4b..1eb1b1e43232c12adacec646aa7ca31a32e0c2e4 100644 (file)
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/javah/Main$2.class and b/libjava/classpath/tools/classes/gnu/classpath/tools/javah/Main$2.class differ
index b59e0172203f5e1bce60d1cb2ff54bda75072e42..a798489e93c781ab7764a03a8e44f0c9b7b7649e 100644 (file)
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/javah/Main$3.class and b/libjava/classpath/tools/classes/gnu/classpath/tools/javah/Main$3.class differ
index db5582d67231c8a0ea606b46f66f55793533a06c..0811703a1e5fff66325b777e0bf38b745c78b186 100644 (file)
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/javah/Main$4.class and b/libjava/classpath/tools/classes/gnu/classpath/tools/javah/Main$4.class differ
index ef7038103803e72fd190d0bc3bd24f84b714738c..faa51e20a530dbe15938b3e0b871f79d39ee01ed 100644 (file)
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/javah/Main$5.class and b/libjava/classpath/tools/classes/gnu/classpath/tools/javah/Main$5.class differ
index e2e627dd34cb833a014188551e617322c4391a8f..10286fa7a07aa1d5dfcb92bd5300d469375ca702 100644 (file)
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/javah/Main$6.class and b/libjava/classpath/tools/classes/gnu/classpath/tools/javah/Main$6.class differ
index 249ec5ceb10f9f63e7545b50c7e0753e60c19a32..6da557c37ac7a0fc8b623fa80027361686cacb64 100644 (file)
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/javah/Main$7.class and b/libjava/classpath/tools/classes/gnu/classpath/tools/javah/Main$7.class differ
index 001bfa06185dfda4e94b3c730598727adf88b4a5..16fe8a3a6e5e1cd253dc78509e5c98f75eca6276 100644 (file)
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/javah/Main$8.class and b/libjava/classpath/tools/classes/gnu/classpath/tools/javah/Main$8.class differ
index aee9be7d9242c9b05ce4e45922ae09a20e048e01..f4393f56fda36d81525601da85e1733c62b1db80 100644 (file)
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/javah/Main$9.class and b/libjava/classpath/tools/classes/gnu/classpath/tools/javah/Main$9.class differ
index 27c3b7e6fa38db4304f18ea8286d13fbba68bd39..66c37937fa3ae25fd3a04a59120a0b18f24cb7dc 100644 (file)
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/javah/Main.class and b/libjava/classpath/tools/classes/gnu/classpath/tools/javah/Main.class differ
index 76b2cbeedab7bff1fe5470118ecf2340a3fa83cf..94bc20c09a5020ef14b10e657ecbc7caeffdd65a 100644 (file)
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/javah/Printer.class and b/libjava/classpath/tools/classes/gnu/classpath/tools/javah/Printer.class differ
index fb007b131019475b7017910ec7bd9bc93f12ab05..445f902da48aba632dd88264a4c8f5bfe97550b4 100644 (file)
@@ -1,5 +1,5 @@
 /* CniIncludePrinter.java - generate CNI header files
- Copyright (C) 2006 Free Software Foundation, Inc.
+ Copyright (C) 2006, 2007 Free Software Foundation, Inc.
 
  This file is part of GNU Classpath.
 
@@ -63,14 +63,14 @@ public class CniIncludePrinter
     return new PrintStream(fos);
   }
 
-  public void printClass(ClassWrapper klass) throws IOException
+  public void printClass(File filename, ClassWrapper klass) throws IOException
   {
     // Never write Object or Class. This is a hack, maybe
     // the user would like to see what they look like...
     if (klass.name.equals("java/lang/Object")
         || klass.name.equals("java/lang/Class"))
       return;
-    PrintStream ps = getPrintStream(klass.name + ".h", klass);
+    PrintStream ps = getPrintStream(filename + ".h", klass);
     if (ps == null)
       return;
     ps.println();
index d91f367c45c33aa2357fe45669508542fe1ddc36..3acec2328897c8df02fa949cdea6ec7738450475 100644 (file)
@@ -1,5 +1,5 @@
 /* CniStubPrinter.java - Generate a CNI stub file
- Copyright (C) 2006 Free Software Foundation, Inc.
+ Copyright (C) 2006, 2007 Free Software Foundation, Inc.
 
  This file is part of GNU Classpath.
 
@@ -90,12 +90,12 @@ public class CniStubPrinter
     return new CniPrintStream(fos);
   }
 
-  public void printClass(ClassWrapper klass) throws IOException
+  public void printClass(File filename, ClassWrapper klass) throws IOException
   {
     if (! klass.hasNativeMethod())
       return;
     String className = klass.name.replaceAll("/", "::");
-    CniPrintStream out = (CniPrintStream) getPrintStream(klass.name + ".cc",
+    CniPrintStream out = (CniPrintStream) getPrintStream(filename + ".cc",
                                                          klass);
     if (out == null)
       return;
index dc19af255168353d30293e8b9bae016c8f344a5e..6c1a8e166fb2bffe3600dc533e7a7ee50cf592c2 100644 (file)
@@ -107,8 +107,9 @@ public class JniIncludePrinter
     return new JniPrintStream(classpath, fos, klass);
   }
 
-  public void printClass(ClassWrapper klass) throws IOException
+  public void printClass(File filename, ClassWrapper klass) throws IOException
   {
+    // Note that we ignore the filename here.
     String xname = JniHelper.mangle(klass.name);
     JniPrintStream out 
       = (JniPrintStream) getPrintStream(klass.name.replace('/', '_') + ".h", 
index 758ec21c091ab9bb5a38be588a67ac8721252d04..d4b34fc20675909fec5883151b63e067d56dab9e 100644 (file)
@@ -1,5 +1,5 @@
 /* JniStubPrinter.java - Generate JNI stub files
- Copyright (C) 2006 Free Software Foundation, Inc.
+ Copyright (C) 2006, 2007 Free Software Foundation, Inc.
 
  This file is part of GNU Classpath.
 
@@ -71,8 +71,9 @@ public class JniStubPrinter
     return new JniPrintStream(classpath, fos, klass);
   }
 
-  public void printClass(ClassWrapper klass) throws IOException
+  public void printClass(File filename, ClassWrapper klass) throws IOException
   {
+    // Note that we ignore the filename here.
     if (! klass.hasNativeMethod())
       return;
     String xname = JniHelper.mangle(klass.name);
index 729af476ad8984d1e2b088510655abd288d461d4..250844d1d88b779d912616bb44cb547f62331916 100644 (file)
@@ -58,6 +58,7 @@ import java.util.Arrays;
 import java.util.HashMap;
 import java.util.HashSet;
 import java.util.Iterator;
+import java.util.Map;
 
 import org.objectweb.asm.ClassReader;
 
@@ -254,7 +255,7 @@ public class Main
         cni = true;
       }
     });
-    result.add(new Option('v', "verbose", "Set verbose mode")
+    result.add(new Option("verbose", 'v', "Set verbose mode")
     {
       public void parsed(String arg0) throws OptionException
       {
@@ -309,16 +310,18 @@ public class Main
     return result;
   }
 
-  private void writeHeaders(ArrayList klasses, Printer printer)
+  private void writeHeaders(HashMap klasses, Printer printer)
       throws IOException
   {
-    Iterator i = klasses.iterator();
+    Iterator i = klasses.entrySet().iterator();
     while (i.hasNext())
       {
-        ClassWrapper klass = (ClassWrapper) i.next();
+       Map.Entry e = (Map.Entry) i.next();
+       File filename = (File) e.getKey();
+        ClassWrapper klass = (ClassWrapper) e.getValue();
         if (verbose)
-          System.err.println("[writing " + klass + "]");
-        printer.printClass(klass);
+          System.err.println("[writing " + klass + " as " + filename + "]");
+        printer.printClass(filename, klass);
       }
   }
 
@@ -376,19 +379,21 @@ public class Main
       }
 
     Iterator i = klasses.iterator();
-    ArrayList results = new ArrayList();
+    HashMap results = new HashMap();
     while (i.hasNext())
       {
         // Let user specify either kind of class name or a
         // file name.
         Object item = i.next();
         ClassWrapper klass;
+       File filename;
         if (item instanceof File)
           {
             // Load class from file.
             if (verbose)
               System.err.println("[reading file " + item + "]");
-            klass = getClass((File) item);
+           filename = (File) item;
+            klass = getClass(filename);
           }
         else
           {
@@ -396,9 +401,12 @@ public class Main
             String className = ((String) item).replace('.', '/');
             if (verbose)
               System.err.println("[reading class " + className + "]");
+           // Use the name the user specified, even if it is
+           // different from the ultimate class name.
+           filename = new File(className);
             klass = getClass(className);
           }
-        results.add(klass);
+        results.put(filename, klass);
       }
 
     writeHeaders(results, printer);
@@ -436,7 +444,8 @@ public class Main
         String resource = name.replace('.', '/') + ".class";
         URL url = loader.findResource(resource);
         if (url == null)
-          throw new IOException("can't find class file " + resource);
+          throw new IOException("can't find class file " + resource
+                               + " in " + loader);
         InputStream is = url.openStream();
         ClassWrapper result = readClass(is);
         classMap.put(name, result);
index 9c4b48d2e5cf895d95e07c8485236df7af2ec946..7a896cf62b108daf89054c9d144ed9a0afec5924 100644 (file)
@@ -1,5 +1,5 @@
 /* Print.java - abstract base class for printing classes
- Copyright (C) 2006 Free Software Foundation, Inc.
+ Copyright (C) 2006, 2007 Free Software Foundation, Inc.
 
  This file is part of GNU Classpath.
 
@@ -95,7 +95,8 @@ public abstract class Printer
     this.force = force;
   }
 
-  public abstract void printClass(ClassWrapper klass) throws IOException;
+  public abstract void printClass(File filename, ClassWrapper klass)
+    throws IOException;
 
   protected abstract void writePreambleImpl(PrintStream ps);