Class JSCallGraph

  • All Implemented Interfaces:
    com.ibm.wala.ipa.callgraph.CallGraph, com.ibm.wala.shrike.shrikeBT.BytecodeConstants, com.ibm.wala.util.graph.EdgeManager<com.ibm.wala.ipa.callgraph.CGNode>, com.ibm.wala.util.graph.Graph<com.ibm.wala.ipa.callgraph.CGNode>, com.ibm.wala.util.graph.NodeManager<com.ibm.wala.ipa.callgraph.CGNode>, com.ibm.wala.util.graph.NumberedEdgeManager<com.ibm.wala.ipa.callgraph.CGNode>, com.ibm.wala.util.graph.NumberedGraph<com.ibm.wala.ipa.callgraph.CGNode>, com.ibm.wala.util.graph.NumberedNodeManager<com.ibm.wala.ipa.callgraph.CGNode>, java.lang.Iterable<com.ibm.wala.ipa.callgraph.CGNode>

    public class JSCallGraph
    extends com.ibm.wala.cast.ipa.callgraph.AstCallGraph
    • Nested Class Summary

      Nested Classes 
      Modifier and Type Class Description
      static class  JSCallGraph.JSFakeRoot  
      • Nested classes/interfaces inherited from class com.ibm.wala.cast.ipa.callgraph.AstCallGraph

        com.ibm.wala.cast.ipa.callgraph.AstCallGraph.AstCGNode, com.ibm.wala.cast.ipa.callgraph.AstCallGraph.AstFakeRoot, com.ibm.wala.cast.ipa.callgraph.AstCallGraph.ScriptFakeRoot
      • Nested classes/interfaces inherited from class com.ibm.wala.ipa.callgraph.impl.ExplicitCallGraph

        com.ibm.wala.ipa.callgraph.impl.ExplicitCallGraph.ExplicitEdgeManager, com.ibm.wala.ipa.callgraph.impl.ExplicitCallGraph.ExplicitNode
      • Nested classes/interfaces inherited from class com.ibm.wala.ipa.callgraph.impl.BasicCallGraph

        com.ibm.wala.ipa.callgraph.impl.BasicCallGraph.Key, com.ibm.wala.ipa.callgraph.impl.BasicCallGraph.NodeImpl
    • Field Summary

      Fields 
      Modifier and Type Field Description
      static com.ibm.wala.types.MethodReference fakeRoot  
      • Fields inherited from class com.ibm.wala.ipa.callgraph.impl.ExplicitCallGraph

        cha, options
      • Fields inherited from class com.ibm.wala.ipa.callgraph.impl.BasicCallGraph

        mr2Nodes
      • Fields inherited from interface com.ibm.wala.shrike.shrikeBT.BytecodeConstants

        JBC_aaload, JBC_aastore, JBC_aconst_null, JBC_aload, JBC_aload_0, JBC_aload_1, JBC_aload_2, JBC_aload_3, JBC_anewarray, JBC_areturn, JBC_arraylength, JBC_astore, JBC_astore_0, JBC_astore_1, JBC_astore_2, JBC_astore_3, JBC_athrow, JBC_baload, JBC_bastore, JBC_bipush, JBC_caload, JBC_castore, JBC_checkcast, JBC_d2f, JBC_d2i, JBC_d2l, JBC_dadd, JBC_daload, JBC_dastore, JBC_dcmpg, JBC_dcmpl, JBC_dconst_0, JBC_dconst_1, JBC_ddiv, JBC_dload, JBC_dload_0, JBC_dload_1, JBC_dload_2, JBC_dload_3, JBC_dmul, JBC_dneg, JBC_drem, JBC_dreturn, JBC_dstore, JBC_dstore_0, JBC_dstore_1, JBC_dstore_2, JBC_dstore_3, JBC_dsub, JBC_dup, JBC_dup_x1, JBC_dup_x2, JBC_dup2, JBC_dup2_x1, JBC_dup2_x2, JBC_f2d, JBC_f2i, JBC_f2l, JBC_fadd, JBC_faload, JBC_fastore, JBC_fcmpg, JBC_fcmpl, JBC_fconst_0, JBC_fconst_1, JBC_fconst_2, JBC_fdiv, JBC_fload, JBC_fload_0, JBC_fload_1, JBC_fload_2, JBC_fload_3, JBC_fmul, JBC_fneg, JBC_frem, JBC_freturn, JBC_fstore, JBC_fstore_0, JBC_fstore_1, JBC_fstore_2, JBC_fstore_3, JBC_fsub, JBC_getfield, JBC_getstatic, JBC_goto, JBC_goto_w, JBC_i2d, JBC_i2f, JBC_i2l, JBC_iadd, JBC_iaload, JBC_iand, JBC_iastore, JBC_iconst_0, JBC_iconst_1, JBC_iconst_2, JBC_iconst_3, JBC_iconst_4, JBC_iconst_5, JBC_iconst_m1, JBC_idiv, JBC_if_acmpeq, JBC_if_acmpne, JBC_if_icmpeq, JBC_if_icmpge, JBC_if_icmpgt, JBC_if_icmple, JBC_if_icmplt, JBC_if_icmpne, JBC_ifeq, JBC_ifge, JBC_ifgt, JBC_ifle, JBC_iflt, JBC_ifne, JBC_ifnonnull, JBC_ifnull, JBC_iinc, JBC_iload, JBC_iload_0, JBC_iload_1, JBC_iload_2, JBC_iload_3, JBC_impdep1, JBC_impdep2, JBC_imul, JBC_ineg, JBC_instanceof, JBC_int2byte, JBC_int2char, JBC_int2short, JBC_invokeinterface, JBC_invokespecial, JBC_invokestatic, JBC_invokevirtual, JBC_ior, JBC_irem, JBC_ireturn, JBC_ishl, JBC_ishr, JBC_istore, JBC_istore_0, JBC_istore_1, JBC_istore_2, JBC_istore_3, JBC_isub, JBC_iushr, JBC_ixor, JBC_jsr, JBC_jsr_w, JBC_l2d, JBC_l2f, JBC_l2i, JBC_ladd, JBC_laload, JBC_land, JBC_lastore, JBC_lcmp, JBC_lconst_0, JBC_lconst_1, JBC_ldc, JBC_ldc_w, JBC_ldc2_w, JBC_ldiv, JBC_length, JBC_lload, JBC_lload_0, JBC_lload_1, JBC_lload_2, JBC_lload_3, JBC_lmul, JBC_lneg, JBC_lookupswitch, JBC_lor, JBC_lrem, JBC_lreturn, JBC_lshl, JBC_lshr, JBC_lstore, JBC_lstore_0, JBC_lstore_1, JBC_lstore_2, JBC_lstore_3, JBC_lsub, JBC_lushr, JBC_lxor, JBC_monitorenter, JBC_monitorexit, JBC_multianewarray, JBC_name, JBC_new, JBC_newarray, JBC_nop, JBC_pop, JBC_pop2, JBC_putfield, JBC_putstatic, JBC_ret, JBC_return, JBC_saload, JBC_sastore, JBC_sipush, JBC_swap, JBC_tableswitch, JBC_wide, JBC_xxxunusedxxx
    • Constructor Summary

      Constructors 
      Constructor Description
      JSCallGraph​(com.ibm.wala.classLoader.IMethod fakeRootClass, com.ibm.wala.ipa.callgraph.AnalysisOptions options, com.ibm.wala.ipa.callgraph.IAnalysisCacheView cache)  
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      java.util.Set<com.ibm.wala.ipa.callgraph.CGNode> getNodes​(com.ibm.wala.types.MethodReference m)  
      protected com.ibm.wala.ipa.callgraph.CGNode makeFakeRootNode()  
      protected com.ibm.wala.ipa.callgraph.CGNode makeFakeWorldClinitNode()  
      • Methods inherited from class com.ibm.wala.cast.ipa.callgraph.AstCallGraph

        makeNode
      • Methods inherited from class com.ibm.wala.ipa.callgraph.impl.ExplicitCallGraph

        findOrCreateNode, getAnalysisCache, getClassHierarchy, getEdgeManager, getNumberOfTargets, getPossibleSites, getPossibleTargetNumbers, getPossibleTargets, makeEdgeManger
      • Methods inherited from class com.ibm.wala.ipa.callgraph.impl.BasicCallGraph

        containsNode, getEntrypointNodes, getFakeRootNode, getFakeWorldClinitNode, getInterpreter, getNode, getNode, getNodeManager, getNumberOfNodes, init, iterator, nodeToString, registerEntrypoint, registerNode, removeNodeAndEdges, setInterpreter, summarizeByPackage, toString
      • Methods inherited from class com.ibm.wala.util.graph.AbstractNumberedGraph

        getMaxNumber, getNode, getNumber, getPredNodeNumbers, getSuccNodeNumbers, iterateNodes
      • Methods inherited from class com.ibm.wala.util.graph.AbstractGraph

        addEdge, addNode, edgeString, getPredNodeCount, getPredNodes, getSuccNodeCount, getSuccNodes, hasEdge, nodeString, removeAllIncidentEdges, removeEdge, removeIncomingEdges, removeNode, removeOutgoingEdges, stream
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
      • Methods inherited from interface com.ibm.wala.util.graph.EdgeManager

        addEdge, getPredNodeCount, getPredNodes, getSuccNodeCount, getSuccNodes, hasEdge, removeAllIncidentEdges, removeEdge, removeIncomingEdges, removeOutgoingEdges
      • Methods inherited from interface java.lang.Iterable

        forEach, spliterator
      • Methods inherited from interface com.ibm.wala.util.graph.NodeManager

        addNode, removeNode, stream
      • Methods inherited from interface com.ibm.wala.util.graph.NumberedEdgeManager

        getPredNodeNumbers, getSuccNodeNumbers
      • Methods inherited from interface com.ibm.wala.util.graph.NumberedNodeManager

        getMaxNumber, getNode, getNumber, iterateNodes
    • Field Detail

      • fakeRoot

        public static final com.ibm.wala.types.MethodReference fakeRoot
    • Constructor Detail

      • JSCallGraph

        public JSCallGraph​(com.ibm.wala.classLoader.IMethod fakeRootClass,
                           com.ibm.wala.ipa.callgraph.AnalysisOptions options,
                           com.ibm.wala.ipa.callgraph.IAnalysisCacheView cache)
    • Method Detail

      • makeFakeWorldClinitNode

        protected com.ibm.wala.ipa.callgraph.CGNode makeFakeWorldClinitNode()
        Overrides:
        makeFakeWorldClinitNode in class com.ibm.wala.ipa.callgraph.impl.ExplicitCallGraph
      • makeFakeRootNode

        protected com.ibm.wala.ipa.callgraph.CGNode makeFakeRootNode()
                                                              throws com.ibm.wala.util.CancelException
        Overrides:
        makeFakeRootNode in class com.ibm.wala.ipa.callgraph.impl.ExplicitCallGraph
        Throws:
        com.ibm.wala.util.CancelException
      • getNodes

        public java.util.Set<com.ibm.wala.ipa.callgraph.CGNode> getNodes​(com.ibm.wala.types.MethodReference m)
        Specified by:
        getNodes in interface com.ibm.wala.ipa.callgraph.CallGraph
        Overrides:
        getNodes in class com.ibm.wala.ipa.callgraph.impl.BasicCallGraph<com.ibm.wala.ipa.callgraph.propagation.SSAContextInterpreter>