123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434 |
- <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
- <!-- NewPage -->
- <html lang="en">
- <head>
- <!-- Generated by javadoc (10.0.1) on Thu Jun 21 01:52:55 JST 2018 -->
- <title>Analyzer (Javassist API)</title>
- <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
- <meta name="date" content="2018-06-21">
- <link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
- <link rel="stylesheet" type="text/css" href="../../../jquery/jquery-ui.css" title="Style">
- <script type="text/javascript" src="../../../script.js"></script>
- <script type="text/javascript" src="../../../jquery/jszip/dist/jszip.min.js"></script>
- <script type="text/javascript" src="../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
- <!--[if IE]>
- <script type="text/javascript" src="../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
- <![endif]-->
- <script type="text/javascript" src="../../../jquery/jquery-1.10.2.js"></script>
- <script type="text/javascript" src="../../../jquery/jquery-ui.js"></script>
- </head>
- <body>
- <script type="text/javascript"><!--
- try {
- if (location.href.indexOf('is-external=true') == -1) {
- parent.document.title="Analyzer (Javassist API)";
- }
- }
- catch(err) {
- }
- //-->
- var methods = {"i0":10,"i1":10};
- var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
- var altColor = "altColor";
- var rowColor = "rowColor";
- var tableTab = "tableTab";
- var activeTableTab = "activeTableTab";
- var pathtoroot = "../../../";loadScripts(document, 'script');</script>
- <noscript>
- <div>JavaScript is disabled on your browser.</div>
- </noscript>
- <div class="fixedNav">
- <!-- ========= START OF TOP NAVBAR ======= -->
- <div class="topNav"><a name="navbar.top">
- <!-- -->
- </a>
- <div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
- <a name="navbar.top.firstrow">
- <!-- -->
- </a>
- <ul class="navList" title="Navigation">
- <li><a href="../../../overview-summary.html">Overview</a></li>
- <li><a href="package-summary.html">Package</a></li>
- <li class="navBarCell1Rev">Class</li>
- <li><a href="class-use/Analyzer.html">Use</a></li>
- <li><a href="package-tree.html">Tree</a></li>
- <li><a href="../../../deprecated-list.html">Deprecated</a></li>
- <li><a href="../../../index-all.html">Index</a></li>
- </ul>
- </div>
- <div class="subNav">
- <ul class="navList">
- <li>Prev Class</li>
- <li><a href="../../../javassist/bytecode/analysis/ControlFlow.html" title="class in javassist.bytecode.analysis"><span class="typeNameLink">Next Class</span></a></li>
- </ul>
- <ul class="navList">
- <li><a href="../../../index.html?javassist/bytecode/analysis/Analyzer.html" target="_top">Frames</a></li>
- <li><a href="Analyzer.html" target="_top">No Frames</a></li>
- </ul>
- <ul class="navList" id="allclasses_navbar_top">
- <li><a href="../../../allclasses-noframe.html">All Classes</a></li>
- </ul>
- <ul class="navListSearch">
- <li><label for="search">SEARCH:</label>
- <input type="text" id="search" value="search" disabled="disabled">
- <input type="reset" id="reset" value="reset" disabled="disabled">
- </li>
- </ul>
- <div>
- <script type="text/javascript"><!--
- allClassesLink = document.getElementById("allclasses_navbar_top");
- if(window==top) {
- allClassesLink.style.display = "block";
- }
- else {
- allClassesLink.style.display = "none";
- }
- //-->
- </script>
- <noscript>
- <div>JavaScript is disabled on your browser.</div>
- </noscript>
- </div>
- <div>
- <ul class="subNavList">
- <li>Summary: </li>
- <li>Nested | </li>
- <li>Field | </li>
- <li><a href="#constructor.summary">Constr</a> | </li>
- <li><a href="#method.summary">Method</a></li>
- </ul>
- <ul class="subNavList">
- <li>Detail: </li>
- <li>Field | </li>
- <li><a href="#constructor.detail">Constr</a> | </li>
- <li><a href="#method.detail">Method</a></li>
- </ul>
- </div>
- <a name="skip.navbar.top">
- <!-- -->
- </a></div>
- <!-- ========= END OF TOP NAVBAR ========= -->
- </div>
- <div class="navPadding"> </div>
- <script type="text/javascript"><!--
- $('.navPadding').css('padding-top', $('.fixedNav').css("height"));
- //-->
- </script>
- <!-- ======== START OF CLASS DATA ======== -->
- <div class="header">
- <div class="subTitle"><span class="packageLabelInType">Package</span> <a href="../../../javassist/bytecode/analysis/package-summary.html">javassist.bytecode.analysis</a></div>
- <h2 title="Class Analyzer" class="title">Class Analyzer</h2>
- </div>
- <div class="contentContainer">
- <ul class="inheritance">
- <li>java.lang.Object</li>
- <li>
- <ul class="inheritance">
- <li>javassist.bytecode.analysis.Analyzer</li>
- </ul>
- </li>
- </ul>
- <div class="description">
- <ul class="blockList">
- <li class="blockList">
- <dl>
- <dt>All Implemented Interfaces:</dt>
- <dd><code><a href="../../../javassist/bytecode/Opcode.html" title="interface in javassist.bytecode">Opcode</a></code></dd>
- </dl>
- <hr>
- <pre>public class <span class="typeNameLabel">Analyzer</span>
- extends java.lang.Object
- implements <a href="../../../javassist/bytecode/Opcode.html" title="interface in javassist.bytecode">Opcode</a></pre>
- <div class="block">A data-flow analyzer that determines the type state of the stack and local
- variable table at every reachable instruction in a method. During analysis,
- bytecode verification is performed in a similar manner to that described
- in the JVM specification.
-
- <p>Example:</p>
-
- <pre>
- // Method to analyze
- public Object doSomething(int x) {
- Number n;
- if (x < 5) {
- n = new Double(0);
- } else {
- n = new Long(0);
- }
-
- return n;
- }
-
- // Which compiles to:
- // 0: iload_1
- // 1: iconst_5
- // 2: if_icmpge 17
- // 5: new #18; //class java/lang/Double
- // 8: dup
- // 9: dconst_0
- // 10: invokespecial #44; //Method java/lang/Double."<init>":(D)V
- // 13: astore_2
- // 14: goto 26
- // 17: new #16; //class java/lang/Long
- // 20: dup
- // 21: lconst_1
- // 22: invokespecial #47; //Method java/lang/Long."<init>":(J)V
- // 25: astore_2
- // 26: aload_2
- // 27: areturn
-
- public void analyzeIt(CtClass clazz, MethodInfo method) {
- Analyzer analyzer = new Analyzer();
- Frame[] frames = analyzer.analyze(clazz, method);
- frames[0].getLocal(0).getCtClass(); // returns clazz;
- frames[0].getLocal(1).getCtClass(); // returns java.lang.String
- frames[1].peek(); // returns Type.INTEGER
- frames[27].peek().getCtClass(); // returns java.lang.Number
- }
- </pre></div>
- <dl>
- <dt><span class="simpleTagLabel">Author:</span></dt>
- <dd>Jason T. Greene</dd>
- <dt><span class="seeLabel">See Also:</span></dt>
- <dd><a href="../../../javassist/bytecode/analysis/FramePrinter.html" title="class in javassist.bytecode.analysis"><code>FramePrinter</code></a></dd>
- </dl>
- </li>
- </ul>
- </div>
- <div class="summary">
- <ul class="blockList">
- <li class="blockList">
- <!-- =========== FIELD SUMMARY =========== -->
- <ul class="blockList">
- <li class="blockList"><a name="field.summary">
- <!-- -->
- </a>
- <h3>Field Summary</h3>
- <ul class="blockList">
- <li class="blockList"><a name="fields.inherited.from.class.javassist.bytecode.Opcode">
- <!-- -->
- </a>
- <h3>Fields inherited from interface javassist.bytecode.<a href="../../../javassist/bytecode/Opcode.html" title="interface in javassist.bytecode">Opcode</a></h3>
- <code><a href="../../../javassist/bytecode/Opcode.html#AALOAD">AALOAD</a>, <a href="../../../javassist/bytecode/Opcode.html#AASTORE">AASTORE</a>, <a href="../../../javassist/bytecode/Opcode.html#ACONST_NULL">ACONST_NULL</a>, <a href="../../../javassist/bytecode/Opcode.html#ALOAD">ALOAD</a>, <a href="../../../javassist/bytecode/Opcode.html#ALOAD_0">ALOAD_0</a>, <a href="../../../javassist/bytecode/Opcode.html#ALOAD_1">ALOAD_1</a>, <a href="../../../javassist/bytecode/Opcode.html#ALOAD_2">ALOAD_2</a>, <a href="../../../javassist/bytecode/Opcode.html#ALOAD_3">ALOAD_3</a>, <a href="../../../javassist/bytecode/Opcode.html#ANEWARRAY">ANEWARRAY</a>, <a href="../../../javassist/bytecode/Opcode.html#ARETURN">ARETURN</a>, <a href="../../../javassist/bytecode/Opcode.html#ARRAYLENGTH">ARRAYLENGTH</a>, <a href="../../../javassist/bytecode/Opcode.html#ASTORE">ASTORE</a>, <a href="../../../javassist/bytecode/Opcode.html#ASTORE_0">ASTORE_0</a>, <a href="../../../javassist/bytecode/Opcode.html#ASTORE_1">ASTORE_1</a>, <a href="../../../javassist/bytecode/Opcode.html#ASTORE_2">ASTORE_2</a>, <a href="../../../javassist/bytecode/Opcode.html#ASTORE_3">ASTORE_3</a>, <a href="../../../javassist/bytecode/Opcode.html#ATHROW">ATHROW</a>, <a href="../../../javassist/bytecode/Opcode.html#BALOAD">BALOAD</a>, <a href="../../../javassist/bytecode/Opcode.html#BASTORE">BASTORE</a>, <a href="../../../javassist/bytecode/Opcode.html#BIPUSH">BIPUSH</a>, <a href="../../../javassist/bytecode/Opcode.html#CALOAD">CALOAD</a>, <a href="../../../javassist/bytecode/Opcode.html#CASTORE">CASTORE</a>, <a href="../../../javassist/bytecode/Opcode.html#CHECKCAST">CHECKCAST</a>, <a href="../../../javassist/bytecode/Opcode.html#D2F">D2F</a>, <a href="../../../javassist/bytecode/Opcode.html#D2I">D2I</a>, <a href="../../../javassist/bytecode/Opcode.html#D2L">D2L</a>, <a href="../../../javassist/bytecode/Opcode.html#DADD">DADD</a>, <a href="../../../javassist/bytecode/Opcode.html#DALOAD">DALOAD</a>, <a href="../../../javassist/bytecode/Opcode.html#DASTORE">DASTORE</a>, <a href="../../../javassist/bytecode/Opcode.html#DCMPG">DCMPG</a>, <a href="../../../javassist/bytecode/Opcode.html#DCMPL">DCMPL</a>, <a href="../../../javassist/bytecode/Opcode.html#DCONST_0">DCONST_0</a>, <a href="../../../javassist/bytecode/Opcode.html#DCONST_1">DCONST_1</a>, <a href="../../../javassist/bytecode/Opcode.html#DDIV">DDIV</a>, <a href="../../../javassist/bytecode/Opcode.html#DLOAD">DLOAD</a>, <a href="../../../javassist/bytecode/Opcode.html#DLOAD_0">DLOAD_0</a>, <a href="../../../javassist/bytecode/Opcode.html#DLOAD_1">DLOAD_1</a>, <a href="../../../javassist/bytecode/Opcode.html#DLOAD_2">DLOAD_2</a>, <a href="../../../javassist/bytecode/Opcode.html#DLOAD_3">DLOAD_3</a>, <a href="../../../javassist/bytecode/Opcode.html#DMUL">DMUL</a>, <a href="../../../javassist/bytecode/Opcode.html#DNEG">DNEG</a>, <a href="../../../javassist/bytecode/Opcode.html#DREM">DREM</a>, <a href="../../../javassist/bytecode/Opcode.html#DRETURN">DRETURN</a>, <a href="../../../javassist/bytecode/Opcode.html#DSTORE">DSTORE</a>, <a href="../../../javassist/bytecode/Opcode.html#DSTORE_0">DSTORE_0</a>, <a href="../../../javassist/bytecode/Opcode.html#DSTORE_1">DSTORE_1</a>, <a href="../../../javassist/bytecode/Opcode.html#DSTORE_2">DSTORE_2</a>, <a href="../../../javassist/bytecode/Opcode.html#DSTORE_3">DSTORE_3</a>, <a href="../../../javassist/bytecode/Opcode.html#DSUB">DSUB</a>, <a href="../../../javassist/bytecode/Opcode.html#DUP">DUP</a>, <a href="../../../javassist/bytecode/Opcode.html#DUP_X1">DUP_X1</a>, <a href="../../../javassist/bytecode/Opcode.html#DUP_X2">DUP_X2</a>, <a href="../../../javassist/bytecode/Opcode.html#DUP2">DUP2</a>, <a href="../../../javassist/bytecode/Opcode.html#DUP2_X1">DUP2_X1</a>, <a href="../../../javassist/bytecode/Opcode.html#DUP2_X2">DUP2_X2</a>, <a href="../../../javassist/bytecode/Opcode.html#F2D">F2D</a>, <a href="../../../javassist/bytecode/Opcode.html#F2I">F2I</a>, <a href="../../../javassist/bytecode/Opcode.html#F2L">F2L</a>, <a href="../../../javassist/bytecode/Opcode.html#FADD">FADD</a>, <a href="../../../javassist/bytecode/Opcode.html#FALOAD">FALOAD</a>, <a href="../../../javassist/bytecode/Opcode.html#FASTORE">FASTORE</a>, <a href="../../../javassist/bytecode/Opcode.html#FCMPG">FCMPG</a>, <a href="../../../javassist/bytecode/Opcode.html#FCMPL">FCMPL</a>, <a href="../../../javassist/bytecode/Opcode.html#FCONST_0">FCONST_0</a>, <a href="../../../javassist/bytecode/Opcode.html#FCONST_1">FCONST_1</a>, <a href="../../../javassist/bytecode/Opcode.html#FCONST_2">FCONST_2</a>, <a href="../../../javassist/bytecode/Opcode.html#FDIV">FDIV</a>, <a href="../../../javassist/bytecode/Opcode.html#FLOAD">FLOAD</a>, <a href="../../../javassist/bytecode/Opcode.html#FLOAD_0">FLOAD_0</a>, <a href="../../../javassist/bytecode/Opcode.html#FLOAD_1">FLOAD_1</a>, <a href="../../../javassist/bytecode/Opcode.html#FLOAD_2">FLOAD_2</a>, <a href="../../../javassist/bytecode/Opcode.html#FLOAD_3">FLOAD_3</a>, <a href="../../../javassist/bytecode/Opcode.html#FMUL">FMUL</a>, <a href="../../../javassist/bytecode/Opcode.html#FNEG">FNEG</a>, <a href="../../../javassist/bytecode/Opcode.html#FREM">FREM</a>, <a href="../../../javassist/bytecode/Opcode.html#FRETURN">FRETURN</a>, <a href="../../../javassist/bytecode/Opcode.html#FSTORE">FSTORE</a>, <a href="../../../javassist/bytecode/Opcode.html#FSTORE_0">FSTORE_0</a>, <a href="../../../javassist/bytecode/Opcode.html#FSTORE_1">FSTORE_1</a>, <a href="../../../javassist/bytecode/Opcode.html#FSTORE_2">FSTORE_2</a>, <a href="../../../javassist/bytecode/Opcode.html#FSTORE_3">FSTORE_3</a>, <a href="../../../javassist/bytecode/Opcode.html#FSUB">FSUB</a>, <a href="../../../javassist/bytecode/Opcode.html#GETFIELD">GETFIELD</a>, <a href="../../../javassist/bytecode/Opcode.html#GETSTATIC">GETSTATIC</a>, <a href="../../../javassist/bytecode/Opcode.html#GOTO">GOTO</a>, <a href="../../../javassist/bytecode/Opcode.html#GOTO_W">GOTO_W</a>, <a href="../../../javassist/bytecode/Opcode.html#I2B">I2B</a>, <a href="../../../javassist/bytecode/Opcode.html#I2C">I2C</a>, <a href="../../../javassist/bytecode/Opcode.html#I2D">I2D</a>, <a href="../../../javassist/bytecode/Opcode.html#I2F">I2F</a>, <a href="../../../javassist/bytecode/Opcode.html#I2L">I2L</a>, <a href="../../../javassist/bytecode/Opcode.html#I2S">I2S</a>, <a href="../../../javassist/bytecode/Opcode.html#IADD">IADD</a>, <a href="../../../javassist/bytecode/Opcode.html#IALOAD">IALOAD</a>, <a href="../../../javassist/bytecode/Opcode.html#IAND">IAND</a>, <a href="../../../javassist/bytecode/Opcode.html#IASTORE">IASTORE</a>, <a href="../../../javassist/bytecode/Opcode.html#ICONST_0">ICONST_0</a>, <a href="../../../javassist/bytecode/Opcode.html#ICONST_1">ICONST_1</a>, <a href="../../../javassist/bytecode/Opcode.html#ICONST_2">ICONST_2</a>, <a href="../../../javassist/bytecode/Opcode.html#ICONST_3">ICONST_3</a>, <a href="../../../javassist/bytecode/Opcode.html#ICONST_4">ICONST_4</a>, <a href="../../../javassist/bytecode/Opcode.html#ICONST_5">ICONST_5</a>, <a href="../../../javassist/bytecode/Opcode.html#ICONST_M1">ICONST_M1</a>, <a href="../../../javassist/bytecode/Opcode.html#IDIV">IDIV</a>, <a href="../../../javassist/bytecode/Opcode.html#IF_ACMPEQ">IF_ACMPEQ</a>, <a href="../../../javassist/bytecode/Opcode.html#IF_ACMPNE">IF_ACMPNE</a>, <a href="../../../javassist/bytecode/Opcode.html#IF_ICMPEQ">IF_ICMPEQ</a>, <a href="../../../javassist/bytecode/Opcode.html#IF_ICMPGE">IF_ICMPGE</a>, <a href="../../../javassist/bytecode/Opcode.html#IF_ICMPGT">IF_ICMPGT</a>, <a href="../../../javassist/bytecode/Opcode.html#IF_ICMPLE">IF_ICMPLE</a>, <a href="../../../javassist/bytecode/Opcode.html#IF_ICMPLT">IF_ICMPLT</a>, <a href="../../../javassist/bytecode/Opcode.html#IF_ICMPNE">IF_ICMPNE</a>, <a href="../../../javassist/bytecode/Opcode.html#IFEQ">IFEQ</a>, <a href="../../../javassist/bytecode/Opcode.html#IFGE">IFGE</a>, <a href="../../../javassist/bytecode/Opcode.html#IFGT">IFGT</a>, <a href="../../../javassist/bytecode/Opcode.html#IFLE">IFLE</a>, <a href="../../../javassist/bytecode/Opcode.html#IFLT">IFLT</a>, <a href="../../../javassist/bytecode/Opcode.html#IFNE">IFNE</a>, <a href="../../../javassist/bytecode/Opcode.html#IFNONNULL">IFNONNULL</a>, <a href="../../../javassist/bytecode/Opcode.html#IFNULL">IFNULL</a>, <a href="../../../javassist/bytecode/Opcode.html#IINC">IINC</a>, <a href="../../../javassist/bytecode/Opcode.html#ILOAD">ILOAD</a>, <a href="../../../javassist/bytecode/Opcode.html#ILOAD_0">ILOAD_0</a>, <a href="../../../javassist/bytecode/Opcode.html#ILOAD_1">ILOAD_1</a>, <a href="../../../javassist/bytecode/Opcode.html#ILOAD_2">ILOAD_2</a>, <a href="../../../javassist/bytecode/Opcode.html#ILOAD_3">ILOAD_3</a>, <a href="../../../javassist/bytecode/Opcode.html#IMUL">IMUL</a>, <a href="../../../javassist/bytecode/Opcode.html#INEG">INEG</a>, <a href="../../../javassist/bytecode/Opcode.html#INSTANCEOF">INSTANCEOF</a>, <a href="../../../javassist/bytecode/Opcode.html#INVOKEDYNAMIC">INVOKEDYNAMIC</a>, <a href="../../../javassist/bytecode/Opcode.html#INVOKEINTERFACE">INVOKEINTERFACE</a>, <a href="../../../javassist/bytecode/Opcode.html#INVOKESPECIAL">INVOKESPECIAL</a>, <a href="../../../javassist/bytecode/Opcode.html#INVOKESTATIC">INVOKESTATIC</a>, <a href="../../../javassist/bytecode/Opcode.html#INVOKEVIRTUAL">INVOKEVIRTUAL</a>, <a href="../../../javassist/bytecode/Opcode.html#IOR">IOR</a>, <a href="../../../javassist/bytecode/Opcode.html#IREM">IREM</a>, <a href="../../../javassist/bytecode/Opcode.html#IRETURN">IRETURN</a>, <a href="../../../javassist/bytecode/Opcode.html#ISHL">ISHL</a>, <a href="../../../javassist/bytecode/Opcode.html#ISHR">ISHR</a>, <a href="../../../javassist/bytecode/Opcode.html#ISTORE">ISTORE</a>, <a href="../../../javassist/bytecode/Opcode.html#ISTORE_0">ISTORE_0</a>, <a href="../../../javassist/bytecode/Opcode.html#ISTORE_1">ISTORE_1</a>, <a href="../../../javassist/bytecode/Opcode.html#ISTORE_2">ISTORE_2</a>, <a href="../../../javassist/bytecode/Opcode.html#ISTORE_3">ISTORE_3</a>, <a href="../../../javassist/bytecode/Opcode.html#ISUB">ISUB</a>, <a href="../../../javassist/bytecode/Opcode.html#IUSHR">IUSHR</a>, <a href="../../../javassist/bytecode/Opcode.html#IXOR">IXOR</a>, <a href="../../../javassist/bytecode/Opcode.html#JSR">JSR</a>, <a href="../../../javassist/bytecode/Opcode.html#JSR_W">JSR_W</a>, <a href="../../../javassist/bytecode/Opcode.html#L2D">L2D</a>, <a href="../../../javassist/bytecode/Opcode.html#L2F">L2F</a>, <a href="../../../javassist/bytecode/Opcode.html#L2I">L2I</a>, <a href="../../../javassist/bytecode/Opcode.html#LADD">LADD</a>, <a href="../../../javassist/bytecode/Opcode.html#LALOAD">LALOAD</a>, <a href="../../../javassist/bytecode/Opcode.html#LAND">LAND</a>, <a href="../../../javassist/bytecode/Opcode.html#LASTORE">LASTORE</a>, <a href="../../../javassist/bytecode/Opcode.html#LCMP">LCMP</a>, <a href="../../../javassist/bytecode/Opcode.html#LCONST_0">LCONST_0</a>, <a href="../../../javassist/bytecode/Opcode.html#LCONST_1">LCONST_1</a>, <a href="../../../javassist/bytecode/Opcode.html#LDC">LDC</a>, <a href="../../../javassist/bytecode/Opcode.html#LDC_W">LDC_W</a>, <a href="../../../javassist/bytecode/Opcode.html#LDC2_W">LDC2_W</a>, <a href="../../../javassist/bytecode/Opcode.html#LDIV">LDIV</a>, <a href="../../../javassist/bytecode/Opcode.html#LLOAD">LLOAD</a>, <a href="../../../javassist/bytecode/Opcode.html#LLOAD_0">LLOAD_0</a>, <a href="../../../javassist/bytecode/Opcode.html#LLOAD_1">LLOAD_1</a>, <a href="../../../javassist/bytecode/Opcode.html#LLOAD_2">LLOAD_2</a>, <a href="../../../javassist/bytecode/Opcode.html#LLOAD_3">LLOAD_3</a>, <a href="../../../javassist/bytecode/Opcode.html#LMUL">LMUL</a>, <a href="../../../javassist/bytecode/Opcode.html#LNEG">LNEG</a>, <a href="../../../javassist/bytecode/Opcode.html#LOOKUPSWITCH">LOOKUPSWITCH</a>, <a href="../../../javassist/bytecode/Opcode.html#LOR">LOR</a>, <a href="../../../javassist/bytecode/Opcode.html#LREM">LREM</a>, <a href="../../../javassist/bytecode/Opcode.html#LRETURN">LRETURN</a>, <a href="../../../javassist/bytecode/Opcode.html#LSHL">LSHL</a>, <a href="../../../javassist/bytecode/Opcode.html#LSHR">LSHR</a>, <a href="../../../javassist/bytecode/Opcode.html#LSTORE">LSTORE</a>, <a href="../../../javassist/bytecode/Opcode.html#LSTORE_0">LSTORE_0</a>, <a href="../../../javassist/bytecode/Opcode.html#LSTORE_1">LSTORE_1</a>, <a href="../../../javassist/bytecode/Opcode.html#LSTORE_2">LSTORE_2</a>, <a href="../../../javassist/bytecode/Opcode.html#LSTORE_3">LSTORE_3</a>, <a href="../../../javassist/bytecode/Opcode.html#LSUB">LSUB</a>, <a href="../../../javassist/bytecode/Opcode.html#LUSHR">LUSHR</a>, <a href="../../../javassist/bytecode/Opcode.html#LXOR">LXOR</a>, <a href="../../../javassist/bytecode/Opcode.html#MONITORENTER">MONITORENTER</a>, <a href="../../../javassist/bytecode/Opcode.html#MONITOREXIT">MONITOREXIT</a>, <a href="../../../javassist/bytecode/Opcode.html#MULTIANEWARRAY">MULTIANEWARRAY</a>, <a href="../../../javassist/bytecode/Opcode.html#NEW">NEW</a>, <a href="../../../javassist/bytecode/Opcode.html#NEWARRAY">NEWARRAY</a>, <a href="../../../javassist/bytecode/Opcode.html#NOP">NOP</a>, <a href="../../../javassist/bytecode/Opcode.html#POP">POP</a>, <a href="../../../javassist/bytecode/Opcode.html#POP2">POP2</a>, <a href="../../../javassist/bytecode/Opcode.html#PUTFIELD">PUTFIELD</a>, <a href="../../../javassist/bytecode/Opcode.html#PUTSTATIC">PUTSTATIC</a>, <a href="../../../javassist/bytecode/Opcode.html#RET">RET</a>, <a href="../../../javassist/bytecode/Opcode.html#RETURN">RETURN</a>, <a href="../../../javassist/bytecode/Opcode.html#SALOAD">SALOAD</a>, <a href="../../../javassist/bytecode/Opcode.html#SASTORE">SASTORE</a>, <a href="../../../javassist/bytecode/Opcode.html#SIPUSH">SIPUSH</a>, <a href="../../../javassist/bytecode/Opcode.html#STACK_GROW">STACK_GROW</a>, <a href="../../../javassist/bytecode/Opcode.html#SWAP">SWAP</a>, <a href="../../../javassist/bytecode/Opcode.html#T_BOOLEAN">T_BOOLEAN</a>, <a href="../../../javassist/bytecode/Opcode.html#T_BYTE">T_BYTE</a>, <a href="../../../javassist/bytecode/Opcode.html#T_CHAR">T_CHAR</a>, <a href="../../../javassist/bytecode/Opcode.html#T_DOUBLE">T_DOUBLE</a>, <a href="../../../javassist/bytecode/Opcode.html#T_FLOAT">T_FLOAT</a>, <a href="../../../javassist/bytecode/Opcode.html#T_INT">T_INT</a>, <a href="../../../javassist/bytecode/Opcode.html#T_LONG">T_LONG</a>, <a href="../../../javassist/bytecode/Opcode.html#T_SHORT">T_SHORT</a>, <a href="../../../javassist/bytecode/Opcode.html#TABLESWITCH">TABLESWITCH</a>, <a href="../../../javassist/bytecode/Opcode.html#WIDE">WIDE</a></code></li>
- </ul>
- </li>
- </ul>
- <!-- ======== CONSTRUCTOR SUMMARY ======== -->
- <ul class="blockList">
- <li class="blockList"><a name="constructor.summary">
- <!-- -->
- </a>
- <h3>Constructor Summary</h3>
- <table class="memberSummary" summary="Constructor Summary table, listing constructors, and an explanation">
- <caption><span>Constructors</span><span class="tabEnd"> </span></caption>
- <tr>
- <th class="colFirst" scope="col">Constructor</th>
- <th class="colLast" scope="col">Description</th>
- </tr>
- <tr class="altColor">
- <th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="../../../javassist/bytecode/analysis/Analyzer.html#Analyzer--">Analyzer</a></span>()</code></th>
- <td class="colLast"> </td>
- </tr>
- </table>
- </li>
- </ul>
- <!-- ========== METHOD SUMMARY =========== -->
- <ul class="blockList">
- <li class="blockList"><a name="method.summary">
- <!-- -->
- </a>
- <h3>Method Summary</h3>
- <table class="memberSummary" summary="Method Summary table, listing methods, and an explanation">
- <caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd"> </span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd"> </span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd"> </span></span></caption>
- <tr>
- <th class="colFirst" scope="col">Modifier and Type</th>
- <th class="colSecond" scope="col">Method</th>
- <th class="colLast" scope="col">Description</th>
- </tr>
- <tr id="i0" class="altColor">
- <td class="colFirst"><code><a href="../../../javassist/bytecode/analysis/Frame.html" title="class in javassist.bytecode.analysis">Frame</a>[]</code></td>
- <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../../javassist/bytecode/analysis/Analyzer.html#analyze-javassist.CtClass-javassist.bytecode.MethodInfo-">analyze</a></span>​(<a href="../../../javassist/CtClass.html" title="class in javassist">CtClass</a> clazz,
- <a href="../../../javassist/bytecode/MethodInfo.html" title="class in javassist.bytecode">MethodInfo</a> method)</code></th>
- <td class="colLast">
- <div class="block">Performs data-flow analysis on a method and returns an array, indexed by
- instruction position, containing the starting frame state of all reachable
- instructions.</div>
- </td>
- </tr>
- <tr id="i1" class="rowColor">
- <td class="colFirst"><code><a href="../../../javassist/bytecode/analysis/Frame.html" title="class in javassist.bytecode.analysis">Frame</a>[]</code></td>
- <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../../javassist/bytecode/analysis/Analyzer.html#analyze-javassist.CtMethod-">analyze</a></span>​(<a href="../../../javassist/CtMethod.html" title="class in javassist">CtMethod</a> method)</code></th>
- <td class="colLast">
- <div class="block">Performs data-flow analysis on a method and returns an array, indexed by
- instruction position, containing the starting frame state of all reachable
- instructions.</div>
- </td>
- </tr>
- </table>
- <ul class="blockList">
- <li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
- <!-- -->
- </a>
- <h3>Methods inherited from class java.lang.Object</h3>
- <code>equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</code></li>
- </ul>
- </li>
- </ul>
- </li>
- </ul>
- </div>
- <div class="details">
- <ul class="blockList">
- <li class="blockList">
- <!-- ========= CONSTRUCTOR DETAIL ======== -->
- <ul class="blockList">
- <li class="blockList"><a name="constructor.detail">
- <!-- -->
- </a>
- <h3>Constructor Detail</h3>
- <a name="Analyzer--">
- <!-- -->
- </a>
- <ul class="blockListLast">
- <li class="blockList">
- <h4>Analyzer</h4>
- <pre>public Analyzer()</pre>
- </li>
- </ul>
- </li>
- </ul>
- <!-- ============ METHOD DETAIL ========== -->
- <ul class="blockList">
- <li class="blockList"><a name="method.detail">
- <!-- -->
- </a>
- <h3>Method Detail</h3>
- <a name="analyze-javassist.CtClass-javassist.bytecode.MethodInfo-">
- <!-- -->
- </a>
- <ul class="blockList">
- <li class="blockList">
- <h4>analyze</h4>
- <pre>public <a href="../../../javassist/bytecode/analysis/Frame.html" title="class in javassist.bytecode.analysis">Frame</a>[] analyze​(<a href="../../../javassist/CtClass.html" title="class in javassist">CtClass</a> clazz,
- <a href="../../../javassist/bytecode/MethodInfo.html" title="class in javassist.bytecode">MethodInfo</a> method)
- throws <a href="../../../javassist/bytecode/BadBytecode.html" title="class in javassist.bytecode">BadBytecode</a></pre>
- <div class="block">Performs data-flow analysis on a method and returns an array, indexed by
- instruction position, containing the starting frame state of all reachable
- instructions. Non-reachable code, and illegal code offsets are represented
- as a null in the frame state array. This can be used to detect dead code.
-
- If the method does not contain code (it is either native or abstract), null
- is returned.</div>
- <dl>
- <dt><span class="paramLabel">Parameters:</span></dt>
- <dd><code>clazz</code> - the declaring class of the method</dd>
- <dd><code>method</code> - the method to analyze</dd>
- <dt><span class="returnLabel">Returns:</span></dt>
- <dd>an array, indexed by instruction position, of the starting frame state,
- or null if this method doesn't have code</dd>
- <dt><span class="throwsLabel">Throws:</span></dt>
- <dd><code><a href="../../../javassist/bytecode/BadBytecode.html" title="class in javassist.bytecode">BadBytecode</a></code> - if the bytecode does not comply with the JVM specification</dd>
- </dl>
- </li>
- </ul>
- <a name="analyze-javassist.CtMethod-">
- <!-- -->
- </a>
- <ul class="blockListLast">
- <li class="blockList">
- <h4>analyze</h4>
- <pre>public <a href="../../../javassist/bytecode/analysis/Frame.html" title="class in javassist.bytecode.analysis">Frame</a>[] analyze​(<a href="../../../javassist/CtMethod.html" title="class in javassist">CtMethod</a> method)
- throws <a href="../../../javassist/bytecode/BadBytecode.html" title="class in javassist.bytecode">BadBytecode</a></pre>
- <div class="block">Performs data-flow analysis on a method and returns an array, indexed by
- instruction position, containing the starting frame state of all reachable
- instructions. Non-reachable code, and illegal code offsets are represented
- as a null in the frame state array. This can be used to detect dead code.
-
- If the method does not contain code (it is either native or abstract), null
- is returned.</div>
- <dl>
- <dt><span class="paramLabel">Parameters:</span></dt>
- <dd><code>method</code> - the method to analyze</dd>
- <dt><span class="returnLabel">Returns:</span></dt>
- <dd>an array, indexed by instruction position, of the starting frame state,
- or null if this method doesn't have code</dd>
- <dt><span class="throwsLabel">Throws:</span></dt>
- <dd><code><a href="../../../javassist/bytecode/BadBytecode.html" title="class in javassist.bytecode">BadBytecode</a></code> - if the bytecode does not comply with the JVM specification</dd>
- </dl>
- </li>
- </ul>
- </li>
- </ul>
- </li>
- </ul>
- </div>
- </div>
- <!-- ========= END OF CLASS DATA ========= -->
- <!-- ======= START OF BOTTOM NAVBAR ====== -->
- <div class="bottomNav"><a name="navbar.bottom">
- <!-- -->
- </a>
- <div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
- <a name="navbar.bottom.firstrow">
- <!-- -->
- </a>
- <ul class="navList" title="Navigation">
- <li><a href="../../../overview-summary.html">Overview</a></li>
- <li><a href="package-summary.html">Package</a></li>
- <li class="navBarCell1Rev">Class</li>
- <li><a href="class-use/Analyzer.html">Use</a></li>
- <li><a href="package-tree.html">Tree</a></li>
- <li><a href="../../../deprecated-list.html">Deprecated</a></li>
- <li><a href="../../../index-all.html">Index</a></li>
- </ul>
- </div>
- <div class="subNav">
- <ul class="navList">
- <li>Prev Class</li>
- <li><a href="../../../javassist/bytecode/analysis/ControlFlow.html" title="class in javassist.bytecode.analysis"><span class="typeNameLink">Next Class</span></a></li>
- </ul>
- <ul class="navList">
- <li><a href="../../../index.html?javassist/bytecode/analysis/Analyzer.html" target="_top">Frames</a></li>
- <li><a href="Analyzer.html" target="_top">No Frames</a></li>
- </ul>
- <ul class="navList" id="allclasses_navbar_bottom">
- <li><a href="../../../allclasses-noframe.html">All Classes</a></li>
- </ul>
- <div>
- <script type="text/javascript"><!--
- allClassesLink = document.getElementById("allclasses_navbar_bottom");
- if(window==top) {
- allClassesLink.style.display = "block";
- }
- else {
- allClassesLink.style.display = "none";
- }
- //-->
- </script>
- <noscript>
- <div>JavaScript is disabled on your browser.</div>
- </noscript>
- </div>
- <div>
- <ul class="subNavList">
- <li>Summary: </li>
- <li>Nested | </li>
- <li>Field | </li>
- <li><a href="#constructor.summary">Constr</a> | </li>
- <li><a href="#method.summary">Method</a></li>
- </ul>
- <ul class="subNavList">
- <li>Detail: </li>
- <li>Field | </li>
- <li><a href="#constructor.detail">Constr</a> | </li>
- <li><a href="#method.detail">Method</a></li>
- </ul>
- </div>
- <a name="skip.navbar.bottom">
- <!-- -->
- </a></div>
- <!-- ======== END OF BOTTOM NAVBAR ======= -->
- <p class="legalCopy"><small><i>Javassist, a Java-bytecode translator toolkit.<br>
- Copyright (C) 1999- Shigeru Chiba. All Rights Reserved.</i></small></p>
- </body>
- </html>
|