public String toString() { StringBuffer b = new StringBuffer(); for (BitSetIterator it = iterator(); it.hasNext();) { b.append(it.next()); b.append(","); } return b.toString(); } }
public String toString() { StringBuffer ret = new StringBuffer(); ret.append('{'); boolean start = true; BitSetIterator it = new BitSetIterator(bits); while (it.hasNext()) { int bit = it.next(); if (!start) { ret.append(", "); } start = false; ret.append(bit); } ret.append('}'); return ret.toString(); }
private void dfsg_visit(TypeVariableBV var) { BitVector parents = var.parents(); for (BitSetIterator i = parents.iterator(); i.hasNext();) { TypeVariableBV parent = resolver.typeVariableForId(i.next()); if (!black.contains(parent)) { black.add(parent); dfsg_visit(parent); } } finished.add(0, var); }
private void dfsgt_visit(TypeVariableBV var) { current_tree.add(var); BitVector children = var.children(); for (BitSetIterator i = children.iterator(); i.hasNext();) { TypeVariableBV child = resolver.typeVariableForId(i.next()); if (!black.contains(child)) { black.add(child); dfsgt_visit(child); } } } }
TypeVariableBV var = resolver.typeVariableForId(i.next());
public OverflowList(PointsToBitVector bv) { BitSetIterator it = bv.iterator(); // Iterates over only the 1 bits while (it.hasNext()) { // Get the next node in the bitset by looking it up in the // pointer assignment graph. // Ripped from BitPointsToSet. Node n = (Node) (pag.getAllocNodeNumberer().get(it.next())); add(n); } }
/** Calls v's visit method on all nodes in this set. */ public final boolean forall(P2SetVisitor v) { for (BitSetIterator it = bits.iterator(); it.hasNext();) { v.visit((Node) pag.getAllocNodeNumberer().get(it.next())); } return v.getReturnValue(); }
public void removeIndirectRelations() { if (rep != this) { ecr().removeIndirectRelations(); return; } if (indirectAncestors == null) { fixAncestors(); } BitVector parentsToRemove = new BitVector(); for (BitSetIterator parentIt = parents.iterator(); parentIt.hasNext();) { final int parent = parentIt.next(); if (indirectAncestors.get(parent)) { parentsToRemove.set(parent); } } for (BitSetIterator i = parentsToRemove.iterator(); i.hasNext();) { removeParent(resolver.typeVariableForId(i.next())); } }
private void remove_transitive_constraints() throws TypeException { refresh_solved(); BitVector list = new BitVector(); list.or(solved); list.or(unsolved); for (BitSetIterator varIt = list.iterator(); varIt.hasNext();) { final TypeVariableBV var = typeVariableForId(varIt.next()); var.removeIndirectRelations(); } }
public boolean forall(P2SetVisitor v) { // Iterate through the bit vector. Ripped from BitPointsToSet again. // It seems there should be a way to share code between BitPointsToSet // and // SharedHybridSet, but I don't know how at the moment. if (bitVector != null) { for (BitSetIterator it = bitVector.iterator(); it.hasNext();) { v.visit((Node) pag.getAllocNodeNumberer().get(it.next())); } } // Iterate through the overflow list for (OverflowList.ListNode i = overflow.overflow; i != null; i = i.next) { v.visit(i.elem); } return v.getReturnValue(); }
/** Calls v's visit method on all nodes in this set. */ public final boolean forall(P2SetVisitor v) { if (bits == null) { for (Node node : nodes) { if (node == null) { return v.getReturnValue(); } v.visit(node); } } else { for (BitSetIterator it = bits.iterator(); it.hasNext();) { v.visit(pag.getAllocNodeNumberer().get(it.next())); } } return v.getReturnValue(); }
TypeVariableBV parent = resolver.typeVariableForId(i.next()).ecr();
private void refresh_solved() throws TypeException { unsolved = new BitVector(); // solved stays the same for (BitSetIterator varIt = unsolved.iterator(); varIt.hasNext();) { final TypeVariableBV var = typeVariableForId(varIt.next()); if (var.depth() == 0) { if (var.type() == null) { unsolved.set(var.id()); } else { solved.set(var.id()); } } } // validate(); }
private void fixAncestors() { BitVector ancestors = new BitVector(0); BitVector indirectAncestors = new BitVector(0); fixParents(); for (BitSetIterator i = parents.iterator(); i.hasNext();) { TypeVariableBV parent = resolver.typeVariableForId(i.next()).ecr(); if (parent.ancestors == null) { parent.fixAncestors(); } ancestors.set(parent.id); ancestors.or(parent.ancestors); indirectAncestors.or(parent.ancestors); } this.ancestors = ancestors; this.indirectAncestors = indirectAncestors; }
private void fixParents() { if (rep != this) { ecr().fixParents(); } BitVector invalid = new BitVector(); invalid.or(parents); invalid.and(resolver.invalidIds()); for (BitSetIterator i = invalid.iterator(); i.hasNext();) { parents.set(resolver.typeVariableForId(i.next()).id()); } parents.clear(this.id); parents.clear(this.id()); parents.andNot(invalid); }
TypeVariableBV var = typeVariableForId(i.next()); single_soft_parent.set(var.id()); } else if (size == 1) { TypeVariableBV parent = typeVariableForId(parents.iterator().next()); single_null_child.set(var.id()); } else if (size == 1) { TypeVariableBV child = typeVariableForId(children.iterator().next());