2. Add the ability to remove Trap if all Stmts are not throw
3. Check for empty TryCatchBlock in TestUtils
Thanks Henddher Pedroza for his test case and support.
--HG--
branch : 0.0.9.x
add test case to test a large instruction method
Update issue 99
re-implement the topologicalSort, use a customized stack to replace the recursive function.
hope this can fix the issue
--HG--
branch : 0.0.9.x
New issue
Summary: opt-sync for a local cause the .class verification fail
Labels: Type-Defect,Priority-Medium
the following code will cause the issue.
public static void a() {
a0 = System.out
L0:
lock a0 <= a0 is inside a try-catch
a1="haha"
a0.println(a1)
L1:
unlock a0
return
L2:
a1 := @Exception
unlock a0
throw a1
=============
.catch L0 - L1 > L2 // all
}
by opt-sync, we add a new local a2, after visit "L0:", we visit "L2:", and "unlock a2", we got a2 is undefined.
public static void a() {
a0 = System.out
L0:
a2=dup a0
lock a2
a1="haha"
a0.println(a1)
L1:
unlock a0
return
L2:
a1 := @Exception
unlock a2
throw a1
=============
.catch L0 - L1 > L2 // all
}
--HG--
branch : 0.0.9.x
Fix issue reported by Jack Li
if String contains ZERO, for example "hi\u0000test",
after dex2jar it will be translate to "hi\ufffd\ufffdtest".
This is caused by the mismatch String encoding while reading String data
in dex file, dex file is encoded in MUTF8, but we are decode using UTF8.
--HG--
branch : 0.0.9.x
add InputStreamDataIn.openApk()
Update issue 127
The code looks great, I merge it to the source,
and I change SeekableStream/MemoryCacheSeekableStream to it's
original name(make it possible to use shared pkg org.apache.xmlgraphics/batik-codec/1.7).
now we can open apk on Android using InputStreamDataIn.openApk(file)
--HG--
branch : 0.0.9.x
Apply patch from yyjdelete, does some modification based on the patch.
And now the .dex file can save all the code using jd-gui
--HG--
branch : 0.0.9.x