From 61855a7ea1d936c36a894c9f3db9a81e165b54d7 Mon Sep 17 00:00:00 2001 From: pubiqq <82187521+pubiqq@users.noreply.github.com> Date: Thu, 1 Aug 2024 00:16:07 +0300 Subject: [PATCH] fix: make detailed var info deterministic (PR #2231) --- .../jadx/core/dex/instructions/args/SSAVar.java | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/jadx-core/src/main/java/jadx/core/dex/instructions/args/SSAVar.java b/jadx-core/src/main/java/jadx/core/dex/instructions/args/SSAVar.java index 44d011c37..dfdc5280c 100644 --- a/jadx-core/src/main/java/jadx/core/dex/instructions/args/SSAVar.java +++ b/jadx-core/src/main/java/jadx/core/dex/instructions/args/SSAVar.java @@ -6,6 +6,7 @@ import java.util.Comparator; import java.util.HashSet; import java.util.List; import java.util.Set; +import java.util.stream.Collectors; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; @@ -292,10 +293,19 @@ public class SSAVar implements Comparable { StringBuilder sb = new StringBuilder(); sb.append('r').append(regNum).append('v').append(version); if (!names.isEmpty()) { - sb.append(", names: ").append(names); + String orderedNames = names.stream() + .sorted() + .collect(Collectors.joining(", ", "[", "]")); + + sb.append(", names: ").append(orderedNames); } if (!types.isEmpty()) { - sb.append(", types: ").append(types); + String orderedTypes = types.stream() + .map(String::valueOf) + .sorted() + .collect(Collectors.joining(", ", "[", "]")); + + sb.append(", types: ").append(orderedTypes); } return sb.toString(); }