< prev index next >

make/jdk/src/classes/build/tools/x11wrappergen/WrapperGenerator.java

Print this page

        

@@ -1,7 +1,7 @@
 /*
- * Copyright (c) 2003, 2013, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 2018, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
  * under the terms of the GNU General Public License version 2 only, as
  * published by the Free Software Foundation.  Oracle designates this

@@ -1107,11 +1107,10 @@
             e.printStackTrace();
         }
     }
 
     public void writeJavaWrapperClass(String outputDir) {
-//          (new File(outputDir, package_path)).mkdirs();
         try {
             for (Enumeration e = symbolTable.elements() ; e.hasMoreElements() ;) {
                 BaseType tp = (BaseType) e.nextElement();
                 if (tp instanceof StructType) {
                     StructType st = (StructType) tp;

@@ -1124,21 +1123,19 @@
         catch (Exception e) {
             e.printStackTrace();
         }
     }
 
-
     public void writeNativeSizer(String file)
     {
         int type;
         int i=0;
         int j=0;
         BaseType tp;
         StructType stp;
         Enumeration eo;
 
-
         try {
 
             FileOutputStream fs =  new FileOutputStream(file);
             PrintWriter pw = new PrintWriter(fs);
 

@@ -1156,11 +1153,10 @@
             pw.println("    unsigned long decorations;\n");
             pw.println("    long inputMode;\n");
             pw.println("    unsigned long status;\n");
             pw.println("} PropMwmHints;\n");
 
-
             pw.println("\n\nint main(){");
             j=0;
             for ( eo = symbolTable.elements() ; eo.hasMoreElements() ;) {
                 tp = (BaseType) eo.nextElement();
                 if (tp instanceof StructType)

@@ -1180,11 +1176,10 @@
             pw.println("printf(\"ptr\t%d\\n\",(int)sizeof(void *));");
             pw.println("printf(\"Bool\t%d\\n\",(int)sizeof(Bool));");
             pw.println("printf(\"Atom\t%d\\n\",(int)sizeof(Atom));");
             pw.println("printf(\"Window\t%d\\n\",(int)sizeof(Window));");
 
-
             for (eo = symbolTable.elements() ; eo.hasMoreElements() ;) {
 
 
                 tp = (BaseType) eo.nextElement();
                 if (tp instanceof StructType)

@@ -1232,11 +1227,12 @@
         symbolTable.put("pointer", new AtomicType(AtomicType.TYPE_PTR, "", "pointer"));
         symbolTable.put("longlong", new AtomicType(AtomicType.TYPE_LONG_LONG, "", "longlong"));
         symbolTable.put("Atom", new AtomicType(AtomicType.TYPE_ATOM, "", "Atom"));
         symbolTable.put("ulong", new AtomicType(AtomicType.TYPE_ULONG, "", "ulong"));
     }
-    public WrapperGenerator(String outputDir, String xlibFilename) {
+
+    public WrapperGenerator(String xlibFilename) {
         initTypes();
         try {
             BufferedReader in  = new BufferedReader(new FileReader(xlibFilename));
             String line;
             String splits[];

@@ -1301,68 +1297,55 @@
             in.close();
         }
         catch (Exception e) {
             e.printStackTrace();
         }
-
-    }
-    private void makeSizer(String outputDir) {
-        if (wide) {
-            sizerFileName = "sizer.64.c";
-        } else {
-            sizerFileName = "sizer.32.c";
         }
-        File fp = new File(outputDir, sizerFileName);
+
+    private void makeSizer(String sizerFileName) {
+        File fp = new File(sizerFileName);
         writeNativeSizer(fp.getAbsolutePath());
     }
-    private boolean readSizeInfo(String sizeInfo) {
+
+    private boolean readFileSizeInfo(String filename, boolean wide) {
         try {
-            File f = new File(sizeInfo+".32");
             boolean res = true;
-            FileInputStream fis = null;
-            if (f.exists()) {
-                fis = new FileInputStream(f);
-                res = readSizeInfo(fis, false);
-                fis.close();
-            }
-            f = new File(sizeInfo+".64");
-            if (f.exists()) {
-                fis = new FileInputStream(f);
-                res &= readSizeInfo(fis, true);
+            FileInputStream fis = new FileInputStream(filename);
+            res = readSizeInfo(fis, wide);
                 fis.close();
-            }
             return res;
         } catch (Exception e) {
             e.printStackTrace();
             return false;
         }
     }
 
-    private void startGeneration(String outputDir, String sizeInfo) {
-        if (readSizeInfo(sizeInfo))
+    private void startGeneration(String outputDir, String filename, boolean wide) {
+        if (readFileSizeInfo(filename, wide))
         {
             writeJavaWrapperClass(outputDir);
         }
         else {
             System.out.println("Error calculating offsets");
         }
     }
 
     public static void main(String[] args) {
-
         if (args.length < 4) {
-            System.out.println("Usage:\nWrapperGenerator <output_dir> <xlibtypes.txt> <action> [<platform> | <sizes info file>]");
-            System.out.println("Where <action>: gen, sizer");
-            System.out.println("      <platform>: 32, 64");
+            System.out.println("Usage:\nWrapperGenerator gen_java <output_dir> <xlibtypes.txt> <sizes-*.txt> <platform>");
+            System.out.println("      or");
+            System.out.println("WrapperGenerator gen_c_source <output_file> <xlibtypes.txt> <platform>");
+            System.out.println("Where <platform>: 32, 64");
+
             System.exit(1);
         }
 
-        WrapperGenerator xparser = new WrapperGenerator(args[0], args[1]);
-        if (args[2].equals("sizer")) {
+        WrapperGenerator xparser = new WrapperGenerator(args[2]);
+        if (args[0].equals("gen_c_source")) {
             xparser.wide = args[3].equals("64");
-            xparser.makeSizer(args[0]);
-        } else if (args[2].equals("gen")) {
-            xparser.startGeneration(args[0], args[3]);
+            xparser.makeSizer(args[1]);
+        } else if (args[0].equals("gen_java")) {
+            boolean wide = args[4].equals("64");
+            xparser.startGeneration(args[1], args[3], wide);
         }
     }
-
 }
< prev index next >