public Type getType() { if (index == PointsToAnalysis.RETURN_NODE) { return method.getReturnType(); } return method.getParameterType(index); }
public void caseDynamicInvokeInst(DynamicInvokeInst i) { SootMethod m = i.getMethod(); Object args[] = m.getParameterTypes().toArray(); remove_types = new Type[args.length]; for (int ii = 0; ii < args.length; ii++) { remove_types[ii] = (Type) args[ii]; } if (m.getReturnType() instanceof VoidType) { add_types = null; } else { add_types = new Type[] { m.getReturnType() }; } }
public void caseStaticInvokeInst(StaticInvokeInst i) { SootMethod m = i.getMethod(); Object args[] = m.getParameterTypes().toArray(); remove_types = new Type[args.length]; for (int ii = 0; ii < args.length; ii++) { remove_types[ii] = (Type) args[ii]; } if (m.getReturnType() instanceof VoidType) { add_types = null; } else { add_types = new Type[] { m.getReturnType() }; } }
private void instanceinvoke(MethodArgInst i) { SootMethod m = i.getMethod(); int length = m.getParameterCount(); remove_types = new Type[length + 1]; remove_types[0] = RefType.v(); System.arraycopy(m.getParameterTypes().toArray(), 0, remove_types, 1, length); if (m.getReturnType() instanceof VoidType) { add_types = null; } else { add_types = new Type[] { m.getReturnType() }; } }
@Override public void caseReturnStmt(ReturnStmt stmt) { usedAsFloatingPoint = stmt.getOp() == l && isFloatingPointLike(body.getMethod().getReturnType()); doBreak = true; return; } });
@Override public void caseReturnStmt(ReturnStmt stmt) { usedAsObject = stmt.getOp() == l && isObject(body.getMethod().getReturnType()); if (usedAsObject) { doBreak = true; } return; }
@Override public void caseReturnStmt(ReturnStmt stmt) { usedAsObject = stmt.getOp() == l && isObject(body.getMethod().getReturnType()); doBreak = true; return; }
final public Node caseRet() { VarNode ret = pag.makeLocalVarNode(Parm.v(method, PointsToAnalysis.RETURN_NODE), method.getReturnType(), method); ret.setInterProcSource(); return ret; }
/** * Returns the Soot subsignature of this method. Used to refer to methods unambiguously. */ public String getSubSignature() { if (subSig == null) { synchronized (this) { if (subSig == null) { subSig = getSubSignatureImpl(getName(), getParameterTypes(), getReturnType()); } } } return subSig; }
@Override public void caseReturnStmt(ReturnStmt stmt) { // add constraint DalvikTyper.v().setType(stmt.getOpBox(), b.getMethod().getReturnType(), true); }
public void caseReturnStmt(ReturnStmt stmt) { stmt.setOp(this.uv.visit(stmt.getOp(), this.jb.getMethod().getReturnType(), stmt)); }
@Override public void caseReturnStmt(ReturnStmt stmt) { if (stmt.getOp() instanceof UntypedConstant) { UntypedConstant uc = (UntypedConstant) stmt.getOp(); Type type = b.getMethod().getReturnType(); stmt.setOp(uc.defineType(type)); } }
@Override public void caseReturnStmt(ReturnStmt stmt) { if (stmt.getOp() instanceof IntConstant && isObject(body.getMethod().getReturnType())) { IntConstant iconst = (IntConstant) stmt.getOp(); assert iconst.value == 0; stmt.setOp(nullConstant); } }
@Override public void caseReturnStmt(ReturnStmt stmt) { if (stmt.getOp() instanceof UntypedConstant) { UntypedConstant uc = (UntypedConstant) stmt.getOp(); Type type = b.getMethod().getReturnType(); stmt.setOp(uc.defineType(type)); } }
public void caseReturnStmt(ReturnStmt stmt) { if (uses) { if (stmt.getOp() instanceof Local) { resolver.typeVariable((Local) stmt.getOp()).addParent(resolver.typeVariable(stmtBody.getMethod().getReturnType())); } } }
public void caseReturnStmt(ReturnStmt stmt) { if (uses) { if (stmt.getOp() instanceof Local) { resolver.typeVariable((Local) stmt.getOp()).addParent(resolver.typeVariable(stmtBody.getMethod().getReturnType())); } } }
public void caseReturnStmt(ReturnStmt stmt) { if (stmt.getOp() instanceof Local) { if (!hierarchy.typeNode(((Local) stmt.getOp()).getType()) .hasAncestorOrSelf(hierarchy.typeNode(stmtBody.getMethod().getReturnType()))) { if (fix) { stmt.setOp(insertCast((Local) stmt.getOp(), stmtBody.getMethod().getReturnType(), stmt)); } else { error("Type Error(51)"); } } } }
public void caseReturnStmt(ReturnStmt stmt) { if (stmt.getOp() instanceof Local) { if (!hierarchy.typeNode(((Local) stmt.getOp()).getType()) .hasAncestorOrSelf(hierarchy.typeNode(stmtBody.getMethod().getReturnType()))) { if (fix) { stmt.setOp(insertCast((Local) stmt.getOp(), stmtBody.getMethod().getReturnType(), stmt)); } else { error("Type Error(51)"); } } } }
public void caseReturnStmt(ReturnStmt stmt) { if (uses) { if (stmt.getOp() instanceof Local) { if (((Local) stmt.getOp()).getType() instanceof IntegerType) { resolver.typeVariable((Local) stmt.getOp()).addParent(resolver.typeVariable(stmtBody.getMethod().getReturnType())); } } } }
public void caseReturnStmt(ReturnStmt stmt) { if (stmt.getOp() instanceof Local) { if (((Local) stmt.getOp()).getType() instanceof IntegerType) { if (!ClassHierarchy.v().typeNode(((Local) stmt.getOp()).getType()) .hasAncestor_1(ClassHierarchy.v().typeNode(stmtBody.getMethod().getReturnType()))) { if (fix) { stmt.setOp(insertCast((Local) stmt.getOp(), stmtBody.getMethod().getReturnType(), stmt)); } else { error("Type Error(19)"); } } } } }