From d2a3a4dd217900a12981868e79fd9633a262ddcc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=84=A2=E6=8C=AF=E5=AE=87?= <1015198808@qq.com> Date: Sun, 20 Jul 2025 22:24:18 +0800 Subject: [PATCH 1/2] Remove a redundant and dangerous points-to updating. --- .../analysis/pta/plugin/reflection/ReflectiveActionModel.java | 1 - 1 file changed, 1 deletion(-) diff --git a/src/main/java/pascal/taie/analysis/pta/plugin/reflection/ReflectiveActionModel.java b/src/main/java/pascal/taie/analysis/pta/plugin/reflection/ReflectiveActionModel.java index c3eec4147..b67ad673c 100644 --- a/src/main/java/pascal/taie/analysis/pta/plugin/reflection/ReflectiveActionModel.java +++ b/src/main/java/pascal/taie/analysis/pta/plugin/reflection/ReflectiveActionModel.java @@ -256,7 +256,6 @@ public void arrayNewInstance(Context context, Invoke invoke, PointsToSet pts) { if (baseType != null && !(baseType instanceof VoidType)) { ArrayType arrayType = typeSystem.getArrayType(baseType, 1); CSObj csNewArray = newReflectiveObj(context, invoke, arrayType); - solver.addVarPointsTo(context, result, csNewArray); allTargets.put(invoke, arrayType); } }); From 17e6d18d7d46f7f3175f901068b35a0cfa8e4f38 Mon Sep 17 00:00:00 2001 From: Zhenyu Yan <1015198808@qq.com> Date: Sat, 26 Jul 2025 11:16:53 +0800 Subject: [PATCH 2/2] Make the reflective object allocation cleaner --- .../analysis/pta/plugin/reflection/ReflectiveActionModel.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/pascal/taie/analysis/pta/plugin/reflection/ReflectiveActionModel.java b/src/main/java/pascal/taie/analysis/pta/plugin/reflection/ReflectiveActionModel.java index b67ad673c..da83b6371 100644 --- a/src/main/java/pascal/taie/analysis/pta/plugin/reflection/ReflectiveActionModel.java +++ b/src/main/java/pascal/taie/analysis/pta/plugin/reflection/ReflectiveActionModel.java @@ -255,7 +255,7 @@ public void arrayNewInstance(Context context, Invoke invoke, PointsToSet pts) { Type baseType = CSObjs.toType(obj); if (baseType != null && !(baseType instanceof VoidType)) { ArrayType arrayType = typeSystem.getArrayType(baseType, 1); - CSObj csNewArray = newReflectiveObj(context, invoke, arrayType); + newReflectiveObj(context, invoke, arrayType); allTargets.put(invoke, arrayType); } });