src/share/classes/com/sun/tools/javac/main/JavaCompiler.java

changeset 1230
b14d9583ce92
parent 1210
62e611704863
child 1340
99d23c0ef8ee
     1.1 --- a/src/share/classes/com/sun/tools/javac/main/JavaCompiler.java	Fri Mar 09 17:10:56 2012 +0000
     1.2 +++ b/src/share/classes/com/sun/tools/javac/main/JavaCompiler.java	Tue Mar 13 15:43:40 2012 -0700
     1.3 @@ -44,6 +44,8 @@
     1.4  import javax.tools.DiagnosticListener;
     1.5  import javax.tools.JavaFileManager;
     1.6  import javax.tools.JavaFileObject;
     1.7 +import javax.tools.StandardLocation;
     1.8 +
     1.9  import static javax.tools.StandardLocation.CLASS_OUTPUT;
    1.10  
    1.11  import com.sun.source.util.TaskEvent;
    1.12 @@ -60,6 +62,7 @@
    1.13  import com.sun.tools.javac.tree.JCTree.*;
    1.14  import com.sun.tools.javac.util.*;
    1.15  import com.sun.tools.javac.util.Log.WriterKind;
    1.16 +
    1.17  import static com.sun.tools.javac.main.Option.*;
    1.18  import static com.sun.tools.javac.util.JCDiagnostic.DiagnosticFlag.*;
    1.19  import static com.sun.tools.javac.util.ListBuffer.lb;
    1.20 @@ -227,6 +230,10 @@
    1.21       */
    1.22      protected ClassWriter writer;
    1.23  
    1.24 +    /** The native header writer.
    1.25 +     */
    1.26 +    protected JNIWriter jniWriter;
    1.27 +
    1.28      /** The module for the symbol table entry phases.
    1.29       */
    1.30      protected Enter enter;
    1.31 @@ -330,6 +337,7 @@
    1.32          reader = ClassReader.instance(context);
    1.33          make = TreeMaker.instance(context);
    1.34          writer = ClassWriter.instance(context);
    1.35 +        jniWriter = JNIWriter.instance(context);
    1.36          enter = Enter.instance(context);
    1.37          todo = Todo.instance(context);
    1.38  
    1.39 @@ -1450,8 +1458,13 @@
    1.40                  JavaFileObject file;
    1.41                  if (usePrintSource)
    1.42                      file = printSource(env, cdef);
    1.43 -                else
    1.44 +                else {
    1.45 +                    if (fileManager.hasLocation(StandardLocation.NATIVE_HEADER_OUTPUT)
    1.46 +                            && jniWriter.needsHeader(cdef.sym)) {
    1.47 +                        jniWriter.write(cdef.sym);
    1.48 +                    }
    1.49                      file = genCode(env, cdef);
    1.50 +                }
    1.51                  if (results != null && file != null)
    1.52                      results.add(file);
    1.53              } catch (IOException ex) {

mercurial