Mercurial > hg > graal-jvmci-8
changeset 4388:b484ad70facb
Lazy initialize the printer.
author | Thomas Wuerthinger <thomas.wuerthinger@oracle.com> |
---|---|
date | Sat, 28 Jan 2012 00:44:26 +0100 |
parents | 1bd28959b8b8 |
children | 6ffa3413096e |
files | graal/com.oracle.max.graal.printer/src/com/oracle/max/graal/printer/IdealGraphPrinterDumpHandler.java |
diffstat | 1 files changed, 17 insertions(+), 7 deletions(-) [+] |
line wrap: on
line diff
--- a/graal/com.oracle.max.graal.printer/src/com/oracle/max/graal/printer/IdealGraphPrinterDumpHandler.java Sat Jan 28 00:40:18 2012 +0100 +++ b/graal/com.oracle.max.graal.printer/src/com/oracle/max/graal/printer/IdealGraphPrinterDumpHandler.java Sat Jan 28 00:44:26 2012 +0100 @@ -42,28 +42,37 @@ private IdealGraphPrinter printer; private List<RiResolvedMethod> previousInlineContext = new ArrayList<>(); + private String fileName; + private String host; + private int port; /** * Creates a new {@link IdealGraphPrinterDumpHandler} that writes output to a file named after the compiled method. */ public IdealGraphPrinterDumpHandler() { - initializeFilePrinter(DEFAULT_FILE_NAME); - begin(); + this.fileName = DEFAULT_FILE_NAME; } /** * Creates a new {@link IdealGraphPrinterDumpHandler} that sends output to a remote IdealGraphVisualizer instance. */ public IdealGraphPrinterDumpHandler(String host, int port) { - initializeNetworkPrinter(host, port); - begin(); + this.host = host; + this.port = port; } - private void begin() { + + + private void ensureInitialized() { + if (fileName != null) { + initializeFilePrinter(); + } else { + initializeNetworkPrinter(); + } printer.begin(); } - private void initializeFilePrinter(String fileName) { + private void initializeFilePrinter() { try { FileOutputStream stream = new FileOutputStream(fileName); printer = new IdealGraphPrinter(stream); @@ -72,7 +81,7 @@ } } - private void initializeNetworkPrinter(String host, int port) { + private void initializeNetworkPrinter() { try { Socket socket = new Socket(host, port); BufferedOutputStream stream = new BufferedOutputStream(socket.getOutputStream(), 0x4000); @@ -86,6 +95,7 @@ @Override public void dump(Object object, final String message) { if (object instanceof Graph) { + ensureInitialized(); final Graph graph = (Graph) object; if (printer.isValid()) {