Skip to content

Commit 9f027e0

Browse files
committed
Minor improvements
1 parent 990f15f commit 9f027e0

File tree

3 files changed

+12
-11
lines changed

3 files changed

+12
-11
lines changed

src/main/java/soot/dotnet/members/ByReferenceWrapperGenerator.java

+4-3
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,7 @@
5050
* @author Marc Miltenberger
5151
*/
5252
public class ByReferenceWrapperGenerator {
53+
public static final String WRAPPER_FIELD_NAME = "r";
5354
public static final String WRAPPER_CLASS_NAME = "ByReferenceWrappers.Wrapper";
5455

5556
public synchronized static SootClass getWrapperClass(Type t) {
@@ -61,7 +62,7 @@ public synchronized static SootClass getWrapperClass(Type t) {
6162
}
6263
SootClass sc = scene.makeSootClass(name, Modifier.FINAL | Modifier.STATIC);
6364
sc.setApplicationClass();
64-
SootField r = scene.makeSootField("r", RefType.v("System.Object"));
65+
SootField r = scene.makeSootField(WRAPPER_FIELD_NAME, RefType.v("System.Object"));
6566
r.setModifiers(Modifier.PUBLIC);
6667
sc.addField(r);
6768

@@ -120,7 +121,7 @@ public static Unit getUnwrapCall(SootClass wrapperClass, Value argToUnwrap, Valu
120121
}
121122

122123
public static SootField getWrapperField(SootClass wrapperClass) {
123-
return wrapperClass.getFieldByName("r");
124+
return wrapperClass.getFieldByName(WRAPPER_FIELD_NAME);
124125
}
125126

126127
/**
@@ -134,7 +135,7 @@ public static SootField getWrapperField(SootClass wrapperClass) {
134135
*/
135136
public static Unit getUpdateWrappedValueCall(Local wrapped, Local unwrapped) {
136137
RefType rt = (RefType) wrapped.getType();
137-
SootField f = rt.getSootClass().getFieldByName("r");
138+
SootField f = rt.getSootClass().getFieldByName(WRAPPER_FIELD_NAME);
138139
Jimple j = Jimple.v();
139140
return j.newAssignStmt(j.newInstanceFieldRef(wrapped, f.makeRef()), unwrapped);
140141

src/main/java/soot/jimple/spark/solver/PropWorklist.java

+4-5
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,7 @@
5656

5757
public class PropWorklist extends Propagator {
5858
private static final Logger logger = LoggerFactory.getLogger(PropWorklist.class);
59-
protected final Set<VarNode> varNodeWorkList = new TreeSet<VarNode>();
59+
protected final TreeSet<VarNode> varNodeWorkList = new TreeSet<VarNode>();
6060

6161
public PropWorklist(PAG pag) {
6262
this.pag = pag;
@@ -75,10 +75,9 @@ public void propagate() {
7575
if (verbose) {
7676
logger.debug("Worklist has " + varNodeWorkList.size() + " nodes.");
7777
}
78-
while (!varNodeWorkList.isEmpty()) {
79-
VarNode src = varNodeWorkList.iterator().next();
80-
varNodeWorkList.remove(src);
81-
handleVarNode(src);
78+
VarNode vsrc;
79+
while ((vsrc = varNodeWorkList.pollFirst()) != null) {
80+
handleVarNode(vsrc);
8281
}
8382
if (verbose) {
8483
logger.debug("Now handling field references");

src/main/java/soot/jimple/toolkits/callgraph/ReachableMethods.java

+4-3
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,6 @@
2525
import java.util.Collection;
2626
import java.util.HashSet;
2727
import java.util.Iterator;
28-
import java.util.NoSuchElementException;
2928
import java.util.Set;
3029

3130
import soot.MethodOrMethodContext;
@@ -91,13 +90,15 @@ public void update() {
9190
while (unprocessedMethods.hasNext()) {
9291
MethodOrMethodContext m = unprocessedMethods.next();
9392
if (m == null) {
94-
continue;
93+
continue;
9594
}
9695
Iterator<Edge> targets = cg.edgesOutOf(m);
9796
if (filter != null) {
9897
targets = filter.wrap(targets);
9998
}
100-
addMethods(new Targets(targets));
99+
if (targets.hasNext()) {
100+
addMethods(new Targets(targets));
101+
}
101102
}
102103
}
103104

0 commit comments

Comments
 (0)