Examples of ClassReader


Examples of org.objectweb.asm.ClassReader

    }

    public static DecompiledClass getDecompiledClass(final InputStream is,
        final String field, final String method, final BitSet modes, final ClassLoader cl)
        throws IOException, UnsupportedClassVersionError {
        ClassReader cr = new ClassReader(is);
        int crFlags = 0;
        if(modes.get(BCOConstants.F_EXPAND_STACKMAP)) {
            crFlags |= ClassReader.EXPAND_FRAMES;
        }
        ClassVisitor cv;
        if (modes.get(BCOConstants.F_SHOW_ASMIFIER_CODE)) {
            cv = new CommentedASMifierClassVisitor(modes);
        } else {
            cv = new CommentedClassVisitor(modes);
        }
        DecompilerClassVisitor dcv = new DecompilerClassVisitor(
            cv, field, method, modes);
        cr.accept(dcv, crFlags);
        return dcv.getResult(cl);
    }
View Full Code Here

Examples of org.objectweb.asm.ClassReader

        ZipEntry e = (ZipEntry) entries.nextElement();
        String n = e.getName();
        if (n.endsWith(".class")) {
          n = n.substring(0, n.length() - 6).replace('/', '.');
          InputStream is = zip.getInputStream(e);
          ClassReader cr = new ClassReader(is);
          if (cr.readInt(4) != Opcodes.V1_6) {
            try {
              ClassWriter cw = new ClassWriter(
                  ClassWriter.COMPUTE_FRAMES);
              cr.accept(cw, 0);
              cr = new ClassReader(cw.toByteArray());
            } catch (Throwable ignored) {
              continue;
            }
          }
          ClassWriter cw = new ClassWriter(0);
          ClassVisitor cv = getClassAdapter(cw);
          try {
            cr.accept(cv, ClassReader.EXPAND_FRAMES);
          } catch (UnsatisfiedLinkError ignored) {
          } catch (NoClassDefFoundError ignored) {
          }
          byte[] b = cw.toByteArray();
          try {
View Full Code Here

Examples of org.overturetool.vdmj.syntax.ClassReader

    int pwarn = 0;
    long duration = 0;

    for (File file : files)
    {
      ClassReader reader = null;

      try
      {
        if (file.getName().endsWith(".lib"))
        {
          FileInputStream fis = new FileInputStream(file);
          GZIPInputStream gis = new GZIPInputStream(fis);
          ObjectInputStream ois = new ObjectInputStream(gis);

          ClassList loaded = null;
          long begin = System.currentTimeMillis();

          try
          {
            loaded = (ClassList) ois.readObject();
          } catch (Exception e)
          {
            println(file + " is not a valid VDM++ library");
            perrs++;
            continue;
          } finally
          {
            ois.close();
          }

          long end = System.currentTimeMillis();
          loaded.setLoaded();
          classes.addAll(loaded);
          classes.remap();

          infoln("Loaded " + plural(loaded.size(), "class", "es")
              + " from " + file + " in " + (double) (end - begin)
              / 1000 + " secs");
        } else
        {
          if (replaceNewIdentifier.isEmpty()
              && architecture.isEmpty() && deploy.isEmpty())
          {
            long before = System.currentTimeMillis();
            LexTokenReader ltr = new LexTokenReader(file, Settings.dialect, filecharset);
            reader = new ClassReader(ltr);
            classes.addAll(reader.readClasses());
            long after = System.currentTimeMillis();
            duration += (after - before);
          } else
          {
            long before = System.currentTimeMillis();

            BacktrackInputReader fileReader = new BacktrackInputReader(file, filecharset);
            StringBuffer buf = new StringBuffer();
            char c;
            while ((c = fileReader.readCh()) != (char) -1)
            {
              buf.append(c);
            }
            fileReader.close();

            String patchedContent = patch(buf.toString());
            logChangedFileContent(patchedContent, file);

            LexTokenReader ltr = new LexTokenReader(patchedContent, Settings.dialect, file);
            reader = new ClassReader(ltr);
            classes.addAll(reader.readClasses());
            long after = System.currentTimeMillis();
            duration += (after - before);
          }
        }
      } catch (InternalException e)
      {
        println(e.toString());
        perrs++;
      } catch (Throwable e)
      {
        println(e.toString());
        perrs++;
      }

      if (reader != null && reader.getErrorCount() > 0)
      {
        perrs += reader.getErrorCount();
        reader.printErrors(Console.out);
      }

      if (reader != null && reader.getWarningCount() > 0)
      {
        pwarn += reader.getWarningCount();
        reader.printWarnings(Console.out);
      }
    }

    int n = classes.notLoaded();
View Full Code Here

Examples of org.ow2.asm.ClassReader

        return new SignatureWriterTest().getSuite();
    }

    @Override
    public void test() throws Exception {
        ClassReader cr = new ClassReader(is);
        cr.accept(new EmptyVisitor() {
            @Override
            public void visit(
                int version,
                int access,
                String name,
View Full Code Here

Examples of org.ow2.asm.ClassReader

        return new CheckSignatureAdapterTest().getSuite();
    }

    @Override
    public void test() throws Exception {
        ClassReader cr = new ClassReader(is);
        cr.accept(new EmptyVisitor() {
            @Override
            public void visit(
                int version,
                int access,
                String name,
View Full Code Here

Examples of org.ow2.asm.ClassReader

*/
public class Attributes extends ClassLoader {

    public static void main(final String args[]) throws Exception {
        // loads the original class and adapts it
        ClassReader cr = new ClassReader("CommentAttribute");
        ClassWriter cw = new ClassWriter(0);
        ClassVisitor cv = new AddCommentClassAdapter(cw);
        cr.accept(cv, new Attribute[] { new CommentAttribute("") }, 0);
        byte[] b = cw.toByteArray();

        // stores the adapted class on disk
        FileOutputStream fos = new FileOutputStream("CommentAttribute.class.new");
        try {
            fos.write(b);
        } finally {
            fos.close();
        }
       
        // "disassembles" the adapted class
        cr = new ClassReader(b);
        cv = new TraceClassVisitor(new PrintWriter(System.out));
        cr.accept(cv, new Attribute[] { new CommentAttribute("") }, 0);
    }
View Full Code Here

Examples of org.ow2.asm.ClassReader

        return new BasicInterpreterTest().getSuite();
    }

    @Override
    public void test() throws Exception {
        ClassReader cr = new ClassReader(is);
        ClassNode cn = new ClassNode();
        cr.accept(cn, 0);
        List<MethodNode> methods = cn.methods;
        for (int i = 0; i < methods.size(); ++i) {
            MethodNode method = methods.get(i);
            Analyzer<BasicValue> a = new Analyzer<BasicValue>(new BasicInterpreter());
            a.analyze(cn.name, method);
View Full Code Here

Examples of org.ow2.asm.ClassReader

        return new GASMifierTest().getSuite();
    }

    @Override
    public void test() throws Exception {
        ClassReader cr = new ClassReader(is);

        if (cr.b.length > 20000) {
            return;
        }

        StringWriter sw = new StringWriter();
        GASMifierClassVisitor cv = new GASMifierClassVisitor(new PrintWriter(sw));
        cr.accept(cv,
                new Attribute[] { new Comment(), new CodeComment() },
                ClassReader.EXPAND_FRAMES);

        String generated = sw.toString();

        byte[] generatorClassData;
        try {
            generatorClassData = COMPILER.compile(n, generated);
        } catch (Exception ex) {
            trace(generated);
            throw ex;
        }

        ClassWriter cw = new ClassWriter(0);
        cr.accept(new ClassAdapter(cw) {
            @Override
            public MethodVisitor visitMethod(
                final int access,
                final String name,
                final String desc,
                final String signature,
                final String[] exceptions)
            {
                return new LocalVariablesSorter(access,
                        desc,
                        super.visitMethod(access,
                                name,
                                desc,
                                signature,
                                exceptions));
            }
        },
                new Attribute[] { new Comment(), new CodeComment() },
                ClassReader.EXPAND_FRAMES);
        cr = new ClassReader(cw.toByteArray());

        String nd = n + "Dump";
        if (n.indexOf('.') != -1) {
            nd = "asm." + nd;
        }

        Class<?> c = LOADER.defineClass(nd, generatorClassData);
        Method m = c.getMethod("dump", new Class<?>[0]);
        byte[] b;
        try {
            b = (byte[]) m.invoke(null, new Object[0]);
        } catch (InvocationTargetException ex) {
            trace(generated);
            throw (Exception) ex.getTargetException();
        }

        try {
            assertEquals(cr, new ClassReader(b), new Filter(), new Filter());
        } catch (Throwable e) {
            trace(generated);
            assertEquals(cr, new ClassReader(b), new Filter(), new Filter());
        }
    }
View Full Code Here

Examples of org.ow2.asm.ClassReader

        return new SerialVersionUIDAdderTest().getSuite();
    }

    @Override
    public void test() throws Exception {
        ClassReader cr = new ClassReader(is);
        cr.accept(new SerialVersionUIDAdder(new EmptyVisitor()), 0);
    }
View Full Code Here

Examples of org.ow2.asm.ClassReader

            protected long computeSVUID() throws IOException {
                svuid[0] = super.computeSVUID();
                return svuid[0];
            }
        };
        new ClassReader(className).accept(cv, 0);
        return svuid[0];
    }
View Full Code Here
TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.