本文整理了Java中soot.Value.apply()
方法的一些代码示例,展示了Value.apply()
的具体用法。这些代码示例主要来源于Github
/Stackoverflow
/Maven
等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。Value.apply()
方法的具体详情如下:
包路径:soot.Value
类名称:Value
方法名:apply
暂无
代码示例来源:origin: Sable/soot
public void apply(Switch sw) {
e.apply(sw);
}
代码示例来源:origin: Sable/soot
public Node getNode(Value v) {
v.apply(this);
return getNode();
}
代码示例来源:origin: Sable/soot
public String printValueAssignment(Value value, String varName) {
suggestVariableName(varName);
value.apply(this);
return getLastAssignedVarName();
}
代码示例来源:origin: Sable/soot
protected ThrowableSet mightThrow(Value v) {
ValueSwitch sw = valueSwitch();
v.apply(sw);
return sw.getResult();
}
代码示例来源:origin: Sable/soot
public void caseArrayRef(ArrayRef v) {
String oldName = varName;
Value base = v.getBase();
suggestVariableName("base");
String baseName = varName;
base.apply(this);
Value index = v.getIndex();
suggestVariableName("index");
String indexName = varName;
index.apply(this);
p.println("Value " + oldName + " = Jimple.v().newArrayRef(" + baseName + ", " + indexName + ");");
varName = oldName;
}
代码示例来源:origin: Sable/soot
public void caseNegExpr(NegExpr v) {
String oldName = varName;
Value op = v.getOp();
suggestVariableName("op");
String opName = varName;
op.apply(this);
p.println("Value " + oldName + " = Jimple.v().newNegExpr(" + opName + ");");
varName = oldName;
}
代码示例来源:origin: Sable/soot
public void caseLengthExpr(LengthExpr v) {
String oldName = varName;
Value op = v.getOp();
suggestVariableName("op");
String opName = varName;
op.apply(this);
p.println("Value " + oldName + " = Jimple.v().newLengthExpr(" + opName + ");");
varName = oldName;
}
代码示例来源:origin: Sable/soot
@Override
public void caseIfStmt(IfStmt stmt) {
Stmt target = stmt.getTarget();
exprV.setOrigStmt(stmt);
exprV.setTargetForOffset(target);
stmt.getCondition().apply(exprV);
}
代码示例来源:origin: Sable/soot
@Override
final public void caseThrowStmt(ThrowStmt ts) {
ts.getOp().apply(MethodNodeFactory.this);
mpag.addOutEdge(getNode(), pag.nodeFactory().caseThrow());
}
});
代码示例来源:origin: Sable/soot
@Override
public void caseVirtualInvokeExpr(VirtualInvokeExpr v) {
if (isReflectionNewInstance(v)) {
NewInstanceNode newInstanceNode = pag.makeNewInstanceNode(v, Scene.v().getObjectType(), method);
v.getBase().apply(this);
Node srcNode = getNode();
mpag.addInternalEdge(srcNode, newInstanceNode);
setResult(newInstanceNode);
} else {
throw new RuntimeException("Unhandled case of VirtualInvokeExpr");
}
}
代码示例来源:origin: Sable/soot
@Override
final public void caseReturnStmt(ReturnStmt rs) {
if (!(rs.getOp().getType() instanceof RefLikeType)) {
return;
}
rs.getOp().apply(MethodNodeFactory.this);
Node retNode = getNode();
mpag.addInternalEdge(retNode, caseRet());
}
代码示例来源:origin: Sable/soot
@Override
final public void caseCastExpr(CastExpr ce) {
Pair<Expr, String> castPair = new Pair<Expr, String>(ce, PointsToAnalysis.CAST_NODE);
ce.getOp().apply(this);
Node opNode = getNode();
Node castNode = pag.makeLocalVarNode(castPair, ce.getCastType(), method);
mpag.addInternalEdge(opNode, castNode);
setResult(castNode);
}
代码示例来源:origin: Sable/soot
@Override
final public void casePhiExpr(PhiExpr e) {
Pair<Expr, String> phiPair = new Pair<Expr, String>(e, PointsToAnalysis.PHI_NODE);
Node phiNode = pag.makeLocalVarNode(phiPair, e.getType(), method);
for (Value op : e.getValues()) {
op.apply(MethodNodeFactory.this);
Node opNode = getNode();
mpag.addInternalEdge(opNode, phiNode);
}
setResult(phiNode);
}
代码示例来源:origin: Sable/soot
public void caseNewArrayExpr(NewArrayExpr v) {
String oldName = varName;
Value size = v.getSize();
suggestVariableName("size");
String sizeName = varName;
size.apply(this);
suggestVariableName("type");
String lhsName = varName;
ttp.setVariableName(varName);
v.getType().apply(ttp);
p.println("Value " + oldName + " = Jimple.v().newNewArrayExpr(" + lhsName + ", " + sizeName + ");");
varName = oldName;
}
代码示例来源:origin: Sable/soot
l.apply(MethodNodeFactory.this);
Node dest = getNode();
r.apply(MethodNodeFactory.this);
Node src = getNode();
if (l instanceof InstanceFieldRef) {
((InstanceFieldRef) l).getBase().apply(MethodNodeFactory.this);
pag.addDereference((VarNode) getNode());
((InstanceFieldRef) r).getBase().apply(MethodNodeFactory.this);
pag.addDereference((VarNode) getNode());
} else if (r instanceof StaticFieldRef) {
代码示例来源:origin: Sable/soot
rhs.apply(constantV);
newInsn = insns.get(insns.size() - 1);
} else if (rhs instanceof ConcreteRef) {
rhs.apply(exprV);
if (rhs instanceof InvokeExpr) {
代码示例来源:origin: Sable/soot
@Override
final public void caseIdentityStmt(IdentityStmt is) {
if (!(is.getLeftOp().getType() instanceof RefLikeType)) {
return;
}
Value leftOp = is.getLeftOp();
Value rightOp = is.getRightOp();
leftOp.apply(MethodNodeFactory.this);
Node dest = getNode();
rightOp.apply(MethodNodeFactory.this);
Node src = getNode();
mpag.addInternalEdge(src, dest);
// in case library mode is activated add allocations to any
// possible type of this local and
// parameters of accessible methods
int libOption = pag.getCGOpts().library();
if (libOption != CGOptions.library_disabled && (accessibilityOracle.isAccessible(method))) {
if (rightOp instanceof IdentityRef) {
Type rt = rightOp.getType();
rt.apply(new SparkLibraryHelper(pag, src, method));
}
}
}
代码示例来源:origin: Sable/soot
public void caseNewMultiArrayExpr(NewMultiArrayExpr v) {
p.openBlock();
String oldName = varName;
ttp.setVariableName("arrayType");
v.getType().apply(ttp);
p.println("List<IntConstant> sizes = new LinkedList<IntConstant>();");
int i = 0;
for (Value s : v.getSizes()) {
this.suggestVariableName("size" + i);
s.apply(this);
i++;
p.println("sizes.add(sizes" + i + ");");
}
p.println("Value " + oldName + " = Jimple.v().newNewMultiArrayExpr(arrayType, sizes);");
varName = oldName;
p.closeBlock();
}
代码示例来源:origin: Sable/soot
lvalue.apply(new AbstractJimpleValueSwitch() {
public void caseArrayRef(ArrayRef v) {
((ConvertToBaf) (v.getBase())).convertToBaf(context, out);
代码示例来源:origin: Sable/soot
for (Value v : args) {
final int j = index;
v.apply(new ConstantSwitch() {
内容来源于网络,如有侵权,请联系作者删除!