Class SingleEntSubIterator

  • All Implemented Interfaces:
    CodeBlockIterator

    public class SingleEntSubIterator
    extends java.lang.Object
    implements CodeBlockIterator
    SingleEntSubIterator is an implementation of CodeBlockIterator capable of iterating in the forward direction over subroutine code blocks. This iterator supports subroutine models which allow only one called/source entry point within a subroutine and may share code with other subroutines produced by the same model. All entry points must be accounted for within M-Model subroutines. NOTE: This iterator only supports OverlapCodeSubModel block models and extensions. NOTE: If the containing M-model subroutine has two entry points, say A and B, such that the code traversed from A is identical to the code traversed by B (due to a cycle), then this iterator will include it twice rather than skipping over the identical address set. This is because the iterator works by iterating through M-model subroutines, and wherever M-model subroutines have n > 1 multiple entry points, the iterator produces an O-model subroutine for every one of the entry points.