Class SimpleLocalDefs.FlowAssignment

    • Constructor Detail

    • Method Detail

      • omissible

        protected boolean omissible​(Unit u)
        Description copied from class: FlowAnalysis
        If a flow node can be omitted return true, otherwise false. There is no guarantee a node will be omitted. A omissible node does not influence the result of an analysis. If you are unsure, don't overwrite this method
        Overrides:
        omissible in class FlowAnalysis<Unit,​soot.toolkits.scalar.SimpleLocalDefs.FlowAssignment.FlowBitSet>
        Parameters:
        u - the node to check
        Returns:
        false
      • getFlow

        protected FlowAnalysis.Flow getFlow​(Unit from,
                                            Unit to)
        Description copied from class: FlowAnalysis
        You can specify which flow set you would like to use of node from
        Overrides:
        getFlow in class FlowAnalysis<Unit,​soot.toolkits.scalar.SimpleLocalDefs.FlowAssignment.FlowBitSet>
        Returns:
        Flow.OUT
      • flowThrough

        protected void flowThrough​(soot.toolkits.scalar.SimpleLocalDefs.FlowAssignment.FlowBitSet in,
                                   Unit unit,
                                   soot.toolkits.scalar.SimpleLocalDefs.FlowAssignment.FlowBitSet out)
        Description copied from class: FlowAnalysis
        Given the merge of the out sets, compute the in set for s (or in to out, depending on direction). This function often causes confusion, because the same interface is used for both forward and backward flow analyses. The first parameter is always the argument to the flow function (i.e. it is the "in" set in a forward analysis and the "out" set in a backward analysis), and the third parameter is always the result of the flow function (i.e. it is the "out" set in a forward analysis and the "in" set in a backward analysis).
        Specified by:
        flowThrough in class FlowAnalysis<Unit,​soot.toolkits.scalar.SimpleLocalDefs.FlowAssignment.FlowBitSet>
        Parameters:
        in - the input flow
        unit - the current node
        out - the returned flow
      • copy

        protected void copy​(soot.toolkits.scalar.SimpleLocalDefs.FlowAssignment.FlowBitSet source,
                            soot.toolkits.scalar.SimpleLocalDefs.FlowAssignment.FlowBitSet dest)
        Description copied from class: AbstractFlowAnalysis
        Creates a copy of the source flow object in dest.
        Specified by:
        copy in class AbstractFlowAnalysis<Unit,​soot.toolkits.scalar.SimpleLocalDefs.FlowAssignment.FlowBitSet>
      • newInitialFlow

        protected soot.toolkits.scalar.SimpleLocalDefs.FlowAssignment.FlowBitSet newInitialFlow()
        Description copied from class: AbstractFlowAnalysis
        Returns the flow object corresponding to the initial values for each graph node.
        Specified by:
        newInitialFlow in class AbstractFlowAnalysis<Unit,​soot.toolkits.scalar.SimpleLocalDefs.FlowAssignment.FlowBitSet>
      • mergeInto

        protected void mergeInto​(Unit succNode,
                                 soot.toolkits.scalar.SimpleLocalDefs.FlowAssignment.FlowBitSet inout,
                                 soot.toolkits.scalar.SimpleLocalDefs.FlowAssignment.FlowBitSet in)
        Description copied from class: AbstractFlowAnalysis
        Merges in into inout, just before node succNode.
        Overrides:
        mergeInto in class AbstractFlowAnalysis<Unit,​soot.toolkits.scalar.SimpleLocalDefs.FlowAssignment.FlowBitSet>
      • merge

        protected void merge​(soot.toolkits.scalar.SimpleLocalDefs.FlowAssignment.FlowBitSet in1,
                             soot.toolkits.scalar.SimpleLocalDefs.FlowAssignment.FlowBitSet in2,
                             soot.toolkits.scalar.SimpleLocalDefs.FlowAssignment.FlowBitSet out)
        Description copied from class: AbstractFlowAnalysis
        Compute the merge of the in1 and in2 sets, putting the result into out. The behavior of this function depends on the implementation ( it may be necessary to check whether in1 and in2 are equal or aliased ). Used by the doAnalysis method.
        Specified by:
        merge in class AbstractFlowAnalysis<Unit,​soot.toolkits.scalar.SimpleLocalDefs.FlowAssignment.FlowBitSet>
      • getDefsOfAt

        public List<Unit> getDefsOfAt​(Local l,
                                      Unit s)
        Description copied from interface: LocalDefs
        Returns the definition sites for a Local at a certain point (Unit) in a method. You can assume this method never returns null.
        Specified by:
        getDefsOfAt in interface LocalDefs
        Parameters:
        l - the Local in question.
        s - a unit that specifies the method context (location) to query for the definitions of the Local.
        Returns:
        a list of Units where the local is defined in the current method context. If there are no uses an empty list will returned.
      • getDefsOf

        public List<Unit> getDefsOf​(Local l)
        Description copied from interface: LocalDefs
        Returns the definition sites for a Local merged over all points in a method. You can assume this method never returns null.
        Specified by:
        getDefsOf in interface LocalDefs
        Parameters:
        l - the Local in question.
        Returns:
        a list of Units where the local is defined in the current method context. If there are no uses an empty list will returned.