/** * @param n a call graph node * @param allocPC a bytecode index corresponding to an allocation * @return the NewSiteReference for the allocation */ static NewSiteReference findAlloc(CGNode n, int allocPC) throws WalaException { if (n == null) { throw new IllegalArgumentException("null n"); } for (NewSiteReference site : Iterator2Iterable.make(n.iterateNewSites())) { if (site.getProgramCounter() == allocPC) { return site; } } throw new WalaException("Failed to find an allocation at pc " + allocPC + " in node " + n); }
/** * @param n a call graph node * @param allocPC a bytecode index corresponding to an allocation * @return the NewSiteReference for the allocation */ static NewSiteReference findAlloc(CGNode n, int allocPC) throws WalaException { if (n == null) { throw new IllegalArgumentException("null n"); } for (NewSiteReference site : Iterator2Iterable.make(n.iterateNewSites())) { if (site.getProgramCounter() == allocPC) { return site; } } throw new WalaException("Failed to find an allocation at pc " + allocPC + " in node " + n); }
@Override public Iterator<? extends Pair<CGNode, NewSiteReference>> makeInner(final CGNode outer) { return new MapIterator<>( new FilterIterator<>( outer.iterateNewSites(), o -> o.getDeclaredType().equals(type.getReference()) ), object -> Pair.make(outer, object)); } };
@Override public Iterator<? extends Pair<CGNode, NewSiteReference>> makeInner(final CGNode outer) { return new MapIterator<>( new FilterIterator<>( outer.iterateNewSites(), o -> o.getDeclaredType().equals(type.getReference()) ), object -> Pair.make(outer, object)); } };
@Override public Iterator<Pair<CGNode, NewSiteReference>> getCreationSites(CallGraph CG) { return new MapIterator<>( new FilterIterator<>( getNode().iterateNewSites(), o -> o.getDeclaredType().equals(getConcreteType().getReference())), object -> Pair.make(getNode(), object)); } }
@Override public Iterator<Pair<CGNode, NewSiteReference>> getCreationSites(CallGraph CG) { return new MapIterator<>( new FilterIterator<>( getNode().iterateNewSites(), o -> o.getDeclaredType().equals(getConcreteType().getReference())), object -> Pair.make(getNode(), object)); } }