private void addColorTag(ValueBox vb, String type) { if (type.equals("bottom")) { // green vb.addTag(new ColorTag(ColorTag.GREEN, "Parity Analysis")); } else if (type.equals("top")) { // red vb.addTag(new ColorTag(ColorTag.RED, "Parity Analysis")); } else if (type.equals("even")) { // yellow vb.addTag(new ColorTag(ColorTag.YELLOW, "Parity Analysis")); } else if (type.equals("odd")) { // blue vb.addTag(new ColorTag(ColorTag.BLUE, "Parity Analysis")); } } }
ColorTag ct = (ColorTag) t; ColorAttribute ca = new ColorAttribute(ct.getRed(), ct.getGreen(), ct.getBlue(), ct.isForeground(), ct.getAnalysisType());
} else if (t instanceof ColorTag) { ColorTag ct = (ColorTag) t; printColorAttr(ct.getRed(), ct.getGreen(), ct.getBlue(), ct.isForeground()); } else { printTextAttr(t.toString());
private void fill(Set<IdentityStmt> parms, IdentityStmt parm, int colour, PointsToAnalysis pa) { if (!parms.contains(parm)) { return; } parm.getRightOpBox().addTag(new ColorTag(colour, "Parameter Alias")); parms.remove(parm); PointsToSet ps = pa.reachingObjects((Local) parm.getLeftOp()); for (Iterator<IdentityStmt> parm2It = (new LinkedList<IdentityStmt>(parms)).iterator(); parm2It.hasNext();) { final IdentityStmt parm2 = parm2It.next(); if (ps.hasNonEmptyIntersection(pa.reachingObjects((Local) parm2.getLeftOp()))) { fill(parms, parm2, colour, pa); } } } }
protected void internalTransform(String phaseName, Map options) { // make list of all unreachable methods ArrayList<SootMethod> methodList = new ArrayList<SootMethod>(); Iterator getClassesIt = Scene.v().getApplicationClasses().iterator(); while (getClassesIt.hasNext()) { SootClass appClass = (SootClass) getClassesIt.next(); Iterator getMethodsIt = appClass.getMethods().iterator(); while (getMethodsIt.hasNext()) { SootMethod method = (SootMethod) getMethodsIt.next(); // System.out.println("adding method: "+method); if (!Scene.v().getReachableMethods().contains(method)) { methodList.add(method); } } } // tag unused methods Iterator<SootMethod> unusedIt = methodList.iterator(); while (unusedIt.hasNext()) { SootMethod unusedMethod = unusedIt.next(); unusedMethod.addTag(new StringTag("Method " + unusedMethod.getName() + " is not reachable!", "Unreachable Methods")); unusedMethod.addTag(new ColorTag(255, 0, 0, true, "Unreachable Methods")); // System.out.println("tagged method: "+unusedMethod); } }
if (result) { s.addTag(new LoopInvariantTag("is loop invariant")); s.addTag(new ColorTag(ColorTag.RED, "Loop Invariant Analysis")); } else {
SootField unusedField = unusedIt.next(); unusedField.addTag(new StringTag("Field " + unusedField.getName() + " is not used!", "Unreachable Fields")); unusedField.addTag(new ColorTag(ColorTag.RED, true, "Unreachable Fields"));
new StringTag("Field: " + f.getName() + " has " + actual + " level access, can have: " + sRes + " level access.", "Tightest Qualifiers")); f.addTag(new ColorTag(255, 10, 0, true, "Tightest Qualifiers"));
"Tightest Qualifiers")); meth.addTag(new ColorTag(255, 10, 0, true, "Tightest Qualifiers"));
aref.getIndexBox().addTag(new ColorTag(255, 0, 0, false, "ArrayCheckTag")); } else if (res == 1) { aref.getIndexBox().addTag(new ColorTag(255, 248, 35, false, "ArrayCheckTag")); } else if (res == 2) { aref.getIndexBox().addTag(new ColorTag(255, 163, 0, false, "ArrayCheckTag")); } else if (res == 3) { aref.getIndexBox().addTag(new ColorTag(45, 255, 84, false, "ArrayCheckTag")); continue; vb.addTag(new ColorTag(raf.isRectangular(new MethodLocal(m, (Local) v)) ? ColorTag.GREEN : ColorTag.RED));
private void addColorTag(ValueBox vb, String type) { if (type.equals("bottom")){ //green vb.addTag(new ColorTag(ColorTag.GREEN, "Parity Analysis")); } else if (type.equals("top")){ //red vb.addTag(new ColorTag(ColorTag.RED, "Parity Analysis")); } else if (type.equals("even")){ //yellow vb.addTag(new ColorTag(ColorTag.YELLOW, "Parity Analysis")); } else if (type.equals("odd")){ //blue vb.addTag(new ColorTag(ColorTag.BLUE, "Parity Analysis")); } } }
private void addColorTag(ValueBox vb, String type) { if (type.equals("bottom")){ //green vb.addTag(new ColorTag(ColorTag.GREEN, "Parity Analysis")); } else if (type.equals("top")){ //red vb.addTag(new ColorTag(ColorTag.RED, "Parity Analysis")); } else if (type.equals("even")){ //yellow vb.addTag(new ColorTag(ColorTag.YELLOW, "Parity Analysis")); } else if (type.equals("odd")){ //blue vb.addTag(new ColorTag(ColorTag.BLUE, "Parity Analysis")); } } }
private void fill( Set<IdentityStmt> parms, IdentityStmt parm, int colour, PointsToAnalysis pa ) { if( !parms.contains(parm) ) return; parm.getRightOpBox().addTag( new ColorTag(colour, "Parameter Alias") ); parms.remove( parm ); PointsToSet ps = pa.reachingObjects( (Local) parm.getLeftOp() ); for( Iterator<IdentityStmt> parm2It = (new LinkedList<IdentityStmt>(parms)).iterator(); parm2It.hasNext(); ) { final IdentityStmt parm2 = parm2It.next(); if( ps.hasNonEmptyIntersection( pa.reachingObjects( (Local) parm2.getLeftOp() ) ) ) { fill( parms, parm2, colour, pa ); } } } }
private void fill( Set<IdentityStmt> parms, IdentityStmt parm, int colour, PointsToAnalysis pa ) { if( !parms.contains(parm) ) return; parm.getRightOpBox().addTag( new ColorTag(colour, "Parameter Alias") ); parms.remove( parm ); PointsToSet ps = pa.reachingObjects( (Local) parm.getLeftOp() ); for( Iterator<IdentityStmt> parm2It = (new LinkedList<IdentityStmt>(parms)).iterator(); parm2It.hasNext(); ) { final IdentityStmt parm2 = parm2It.next(); if( ps.hasNonEmptyIntersection( pa.reachingObjects( (Local) parm2.getLeftOp() ) ) ) { fill( parms, parm2, colour, pa ); } } } }
protected void internalTransform(String phaseName, Map options){ // make list of all unreachable methods ArrayList<SootMethod> methodList = new ArrayList<SootMethod>(); Iterator getClassesIt = Scene.v().getApplicationClasses().iterator(); while (getClassesIt.hasNext()) { SootClass appClass = (SootClass)getClassesIt.next(); Iterator getMethodsIt = appClass.getMethods().iterator(); while (getMethodsIt.hasNext()) { SootMethod method = (SootMethod)getMethodsIt.next(); //System.out.println("adding method: "+method); if (!Scene.v().getReachableMethods().contains(method)){ methodList.add(method); } } } // tag unused methods Iterator<SootMethod> unusedIt = methodList.iterator(); while (unusedIt.hasNext()) { SootMethod unusedMethod = unusedIt.next(); unusedMethod.addTag(new StringTag("Method "+unusedMethod.getName()+" is not reachable!", "Unreachable Methods")); unusedMethod.addTag(new ColorTag(255,0,0,true, "Unreachable Methods")); //System.out.println("tagged method: "+unusedMethod); } }
protected void internalTransform(String phaseName, Map options){ // make list of all unreachable methods ArrayList<SootMethod> methodList = new ArrayList<SootMethod>(); Iterator getClassesIt = Scene.v().getApplicationClasses().iterator(); while (getClassesIt.hasNext()) { SootClass appClass = (SootClass)getClassesIt.next(); Iterator getMethodsIt = appClass.getMethods().iterator(); while (getMethodsIt.hasNext()) { SootMethod method = (SootMethod)getMethodsIt.next(); //System.out.println("adding method: "+method); if (!Scene.v().getReachableMethods().contains(method)){ methodList.add(method); } } } // tag unused methods Iterator<SootMethod> unusedIt = methodList.iterator(); while (unusedIt.hasNext()) { SootMethod unusedMethod = unusedIt.next(); unusedMethod.addTag(new StringTag("Method "+unusedMethod.getName()+" is not reachable!", "Unreachable Methods")); unusedMethod.addTag(new ColorTag(255,0,0,true, "Unreachable Methods")); //System.out.println("tagged method: "+unusedMethod); } }