From a03637690cd986fd9edfb050e29aa762f267b262 Mon Sep 17 00:00:00 2001 From: DongjieHe Date: Thu, 16 Nov 2023 14:35:03 +1100 Subject: [PATCH] update --- qilin.core/src/qilin/core/pag/PAG.java | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 deletions(-) diff --git a/qilin.core/src/qilin/core/pag/PAG.java b/qilin.core/src/qilin/core/pag/PAG.java index c74bc62..d531919 100644 --- a/qilin.core/src/qilin/core/pag/PAG.java +++ b/qilin.core/src/qilin/core/pag/PAG.java @@ -29,10 +29,12 @@ import qilin.parm.heapabst.HeapAbstractor; import qilin.util.DataFactory; import qilin.util.PTAUtils; +import qilin.util.Pair; import soot.*; import soot.jimple.*; import soot.jimple.internal.JArrayRef; import soot.jimple.internal.JAssignStmt; +import soot.jimple.internal.JCaughtExceptionRef; import soot.jimple.internal.JimpleLocal; import soot.jimple.spark.pag.SparkField; import soot.util.ArrayNumberer; @@ -345,6 +347,14 @@ public GlobalVarNode makeGlobalVarNode(Object value, Type type) { * Finds or creates the LocalVarNode for the variable value, of type type. */ public LocalVarNode makeLocalVarNode(Object value, Type type, SootMethod method) { + if (value instanceof Parm || value instanceof Local || value instanceof Stmt || value instanceof Pair || value instanceof Expr + || value instanceof JCaughtExceptionRef + ) { + + } else { + System.out.println(value + ";;" + value.getClass()); + } + JCaughtExceptionRef x; LocalVarNode ret = (LocalVarNode) valToValNode.get(value); if (ret == null) { valToValNode.put(value, ret = new LocalVarNode(value, type, method)); @@ -588,15 +598,6 @@ private void handleArrayCopy(SootMethod method) { } } - public LocalVarNode makeInvokeStmtThrowVarNode(Stmt invoke, SootMethod method) { - return makeLocalVarNode(invoke, RefType.v("java.lang.Throwable"), method); - } - - public HeapAbstractor heapAbstractor() { - return pta.heapAbstractor(); - } - - public void resetPointsToSet() { this.addedContexts.clear(); contextVarNodeMap.values().stream().flatMap(m -> m.values().stream()).forEach(ValNode::discardP2Set);