/** * Dumps the given array, interpreting it as a class file. * * @param bytes {@code non-null;} bytes of the (alleged) class file * @param out {@code non-null;} where to dump to * passed in as <= 0 * @param filePath the file path for the class, excluding any base * directory specification * @param args bag of commandline arguments */ public static void dump(byte[] bytes, PrintStream out, String filePath, Args args) { ClassDumper cd = new ClassDumper(bytes, out, filePath, args); cd.dump(); }
/** * Does the dumping. */ public void dump() { byte[] bytes = getBytes(); ByteArray ba = new ByteArray(bytes); DirectClassFile cf = new DirectClassFile(ba, getFilePath(), getStrictParse()); cf.setAttributeFactory(StdAttributeFactory.THE_ONE); cf.setObserver(this); cf.getMagic(); // Force parsing to happen. int at = getAt(); if (at != bytes.length) { parsed(ba, at, bytes.length - at, "<extra data at end of file>"); } } }
/** * Does the dumping. */ public void dump() { byte[] bytes = getBytes(); ByteArray ba = new ByteArray(bytes); DirectClassFile cf = new DirectClassFile(ba, getFilePath(), getStrictParse()); cf.setAttributeFactory(StdAttributeFactory.THE_ONE); cf.setObserver(this); cf.getMagic(); // Force parsing to happen. int readBytes = getReadBytes(); if (readBytes != bytes.length) { parsed(ba, readBytes, bytes.length - readBytes, "<extra data at end of file>"); } } }
/** * Processes one file. * * @param name {@code non-null;} name of the file * @param bytes {@code non-null;} contents of the file */ private void processOne(String name, byte[] bytes) { if (parsedArgs.dotDump) { DotDumper.dump(bytes, name, parsedArgs); } else if (parsedArgs.basicBlocks) { BlockDumper.dump(bytes, System.out, name, false, parsedArgs); } else if (parsedArgs.ropBlocks) { BlockDumper.dump(bytes, System.out, name, true, parsedArgs); } else if (parsedArgs.ssaBlocks) { // --optimize ignored with --ssa-blocks parsedArgs.optimize = false; SsaDumper.dump(bytes, System.out, name, parsedArgs); } else { ClassDumper.dump(bytes, System.out, name, parsedArgs); } } }
/** * Does the dumping. */ public void dump() { byte[] bytes = getBytes(); ByteArray ba = new ByteArray(bytes); DirectClassFile cf = new DirectClassFile(ba, getFilePath(), getStrictParse()); cf.setAttributeFactory(StdAttributeFactory.THE_ONE); cf.setObserver(this); cf.getMagic(); // Force parsing to happen. int at = getAt(); if (at != bytes.length) { parsed(ba, at, bytes.length - at, "<extra data at end of file>"); } } }
/** * Processes one file. * * @param name {@code non-null;} name of the file * @param bytes {@code non-null;} contents of the file */ private static void processOne(String name, byte[] bytes) { if (parsedArgs.dotDump) { DotDumper.dump(bytes, name, parsedArgs); } else if (parsedArgs.basicBlocks) { BlockDumper.dump(bytes, System.out, name, false, parsedArgs); } else if (parsedArgs.ropBlocks) { BlockDumper.dump(bytes, System.out, name, true, parsedArgs); } else if (parsedArgs.ssaBlocks) { // --optimize ignored with --ssa-blocks parsedArgs.optimize = false; SsaDumper.dump(bytes, System.out, name, parsedArgs); } else { ClassDumper.dump(bytes, System.out, name, parsedArgs); } } }
/** * Does the dumping. */ public void dump() { byte[] bytes = getBytes(); ByteArray ba = new ByteArray(bytes); DirectClassFile cf = new DirectClassFile(ba, getFilePath(), getStrictParse()); cf.setAttributeFactory(StdAttributeFactory.THE_ONE); cf.setObserver(this); cf.getMagic(); // Force parsing to happen. int at = getAt(); if (at != bytes.length) { parsed(ba, at, bytes.length - at, "<extra data at end of file>"); } } }
/** * Dumps the given array, interpreting it as a class file. * * @param bytes {@code non-null;} bytes of the (alleged) class file * @param out {@code non-null;} where to dump to * passed in as <= 0 * @param filePath the file path for the class, excluding any base * directory specification * @param args bag of commandline arguments */ public static void dump(byte[] bytes, PrintStream out, String filePath, Args args) { ClassDumper cd = new ClassDumper(bytes, out, filePath, args); cd.dump(); }
/** * Processes one file. * * @param name {@code non-null;} name of the file * @param bytes {@code non-null;} contents of the file */ private void processOne(String name, byte[] bytes) { if (parsedArgs.dotDump) { DotDumper.dump(bytes, name, parsedArgs); } else if (parsedArgs.basicBlocks) { BlockDumper.dump(bytes, System.out, name, false, parsedArgs); } else if (parsedArgs.ropBlocks) { BlockDumper.dump(bytes, System.out, name, true, parsedArgs); } else if (parsedArgs.ssaBlocks) { // --optimize ignored with --ssa-blocks parsedArgs.optimize = false; SsaDumper.dump(bytes, System.out, name, parsedArgs); } else { ClassDumper.dump(bytes, System.out, name, parsedArgs); } } }
/** * Does the dumping. */ public void dump() { byte[] bytes = getBytes(); ByteArray ba = new ByteArray(bytes); DirectClassFile cf = new DirectClassFile(ba, getFilePath(), getStrictParse()); cf.setAttributeFactory(StdAttributeFactory.THE_ONE); cf.setObserver(this); cf.getMagic(); // Force parsing to happen. int at = getAt(); if (at != bytes.length) { parsed(ba, at, bytes.length - at, "<extra data at end of file>"); } } }
/** * Dumps the given array, interpreting it as a class file. * * @param bytes {@code non-null;} bytes of the (alleged) class file * @param out {@code non-null;} where to dump to * passed in as <= 0 * @param filePath the file path for the class, excluding any base * directory specification * @param args bag of commandline arguments */ public static void dump(byte[] bytes, PrintStream out, String filePath, Args args) { ClassDumper cd = new ClassDumper(bytes, out, filePath, args); cd.dump(); }
/** * Processes one file. * * @param name {@code non-null;} name of the file * @param bytes {@code non-null;} contents of the file */ private static void processOne(String name, byte[] bytes) { if (parsedArgs.dotDump) { DotDumper.dump(bytes, name, parsedArgs); } else if (parsedArgs.basicBlocks) { BlockDumper.dump(bytes, System.out, name, false, parsedArgs); } else if (parsedArgs.ropBlocks) { BlockDumper.dump(bytes, System.out, name, true, parsedArgs); } else if (parsedArgs.ssaBlocks) { // --optimize ignored with --ssa-blocks parsedArgs.optimize = false; SsaDumper.dump(bytes, System.out, name, parsedArgs); } else { ClassDumper.dump(bytes, System.out, name, parsedArgs); } } }
/** * Dumps the given array, interpreting it as a class file. * * @param bytes {@code non-null;} bytes of the (alleged) class file * @param out {@code non-null;} where to dump to * passed in as <= 0 * @param filePath the file path for the class, excluding any base * directory specification * @param args bag of commandline arguments */ public static void dump(byte[] bytes, PrintStream out, String filePath, Args args) { ClassDumper cd = new ClassDumper(bytes, out, filePath, args); cd.dump(); }
/** * Processes one file. * * @param name {@code non-null;} name of the file * @param bytes {@code non-null;} contents of the file */ private static void processOne(String name, byte[] bytes) { if (parsedArgs.dotDump) { DotDumper.dump(bytes, name, parsedArgs); } else if (parsedArgs.basicBlocks) { BlockDumper.dump(bytes, System.out, name, false, parsedArgs); } else if (parsedArgs.ropBlocks) { BlockDumper.dump(bytes, System.out, name, true, parsedArgs); } else if (parsedArgs.ssaBlocks) { // --optimize ignored with --ssa-blocks parsedArgs.optimize = false; SsaDumper.dump(bytes, System.out, name, parsedArgs); } else { ClassDumper.dump(bytes, System.out, name, parsedArgs); } } }
/** * Dumps the given array, interpreting it as a class file. * * @param bytes {@code non-null;} bytes of the (alleged) class file * @param out {@code non-null;} where to dump to * passed in as <= 0 * @param filePath the file path for the class, excluding any base * directory specification * @param args bag of commandline arguments */ public static void dump(byte[] bytes, PrintStream out, String filePath, Args args) { ClassDumper cd = new ClassDumper(bytes, out, filePath, args); cd.dump(); }