# HG changeset patch # User Thomas Wuerthinger # Date 1327707866 -3600 # Node ID b484ad70facbd75326b09aa6b45d9f8163da13ed # Parent 1bd28959b8b85fc91bb0290e862f696d89d54138 Lazy initialize the printer. diff -r 1bd28959b8b8 -r b484ad70facb graal/com.oracle.max.graal.printer/src/com/oracle/max/graal/printer/IdealGraphPrinterDumpHandler.java --- 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 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()) {