From 478d186a956b37db326e90c8368137d24b2adde0 Mon Sep 17 00:00:00 2001 From: Skylot Date: Sat, 23 Mar 2013 19:24:56 +0400 Subject: [PATCH] Fix incorrect variable declaration --- .../jadx/dex/visitors/regions/ProcessVariables.java | 6 ------ src/samples/java/jadx/samples/TestTryCatch.java | 12 ++++++++++++ 2 files changed, 12 insertions(+), 6 deletions(-) diff --git a/src/main/java/jadx/dex/visitors/regions/ProcessVariables.java b/src/main/java/jadx/dex/visitors/regions/ProcessVariables.java index 4c09efeb8..b14ecf530 100644 --- a/src/main/java/jadx/dex/visitors/regions/ProcessVariables.java +++ b/src/main/java/jadx/dex/visitors/regions/ProcessVariables.java @@ -114,12 +114,6 @@ public class ProcessVariables extends AbstractVisitor { continue; // } } - // suppose variables always initialized - if (u.getAssigns().size() == 1 && u.getUseRegions().size() <= 1) { - r.getParentInsn().getAttributes().add(new DeclareVariableAttr()); - it.remove(); - continue; - } // check if we can declare variable at current assigns for (IRegion assignRegion : u.getAssigns()) { if (canDeclareInRegion(u, assignRegion)) { diff --git a/src/samples/java/jadx/samples/TestTryCatch.java b/src/samples/java/jadx/samples/TestTryCatch.java index cef0ddd83..455cce7f1 100644 --- a/src/samples/java/jadx/samples/TestTryCatch.java +++ b/src/samples/java/jadx/samples/TestTryCatch.java @@ -131,6 +131,17 @@ public class TestTryCatch extends AbstractTest { return obj.toString() != null; } + public Object mObject = new Object(); + public boolean mDiscovering = true; + + private boolean testSynchronize3() { + boolean b = false; + synchronized (mObject) { + b = this.mDiscovering; + } + return b; + } + @Override public boolean testRun() throws Exception { Object obj = new Object(); @@ -147,6 +158,7 @@ public class TestTryCatch extends AbstractTest { assertTrue(testSynchronize("str") == false); assertTrue(testSynchronize2("str")); + assertTrue(testSynchronize3()); return true; }