This commit is contained in:
Julian Dolby 2017-01-03 18:59:24 -05:00
commit 12404a0ce6
2 changed files with 6 additions and 9 deletions

View File

@ -556,11 +556,15 @@ public class SDG<T extends InstanceKey> extends AbstractNumberedGraph<Statement>
case PARAM_CALLER: {
ParamCaller pac = (ParamCaller) N;
SSAAbstractInvokeInstruction call = pac.getInstruction();
int numParamsPassed = call.getNumberOfUses();
Collection<Statement> result = HashSetFactory.make(5);
if (!dOptions.equals(DataDependenceOptions.NONE)) {
// data dependence successors
for (CGNode t : cg.getPossibleTargets(N.getNode(), call.getCallSite())) {
for (int i = 0; i < t.getMethod().getNumberOfParameters(); i++) {
// in some languages (*cough* JavaScript *cough*) you can pass
// fewer parameters than the number of formals. So, only loop
// over the parameters actually being passed here
for (int i = 0; i < t.getMethod().getNumberOfParameters() && i < numParamsPassed; i++) {
if (dOptions.isTerminateAtCast() && call.isDispatch() && pac.getValueNumber() == call.getReceiver()) {
// a virtual dispatch is just like a cast.
continue;

View File

@ -51,14 +51,7 @@
<target name="fetchDexlib" depends="DexlibPresent" unless="dexlib.present">
<mkdir dir="${plugin.destination}/lib"/>
<delete dir="${temp.folder}"/>
<mkdir dir="${temp.folder}"/>
<get src="https://apktool2.googlecode.com/archive/c1659e62c414c96882c49afa72032b504c921b5a.zip" dest="${temp.folder}/dexlib.zip"/>
<unzip src="${temp.folder}/dexlib.zip" dest="${temp.folder}"/>
<copy file="${temp.folder}/apktool2-c1659e62c414/m2-releases/brut/apktool/smali/dexlib/1.3.4-ibot7/dexlib-1.3.4-ibot7.jar" tofile="${plugin.destination}/lib/dexlib-1.3.4.jar"/>
<delete dir="${temp.folder}"/>
<get src="https://github.com/SCanDroid/SCanDroid/raw/master/lib/dexlib-1.3.4-dev.jar" dest="${plugin.destination}/lib/dexlib-1.3.4.jar"/>
</target>
<target name="GuavaPresent" depends="init">