asmdex rewrites try_end before try_start
If the last 2 smali instructions in the method are try_end & catchall, and
an additional instruction is added anywhere in the method then asmdex will
move the try_end & catchall above try_start.
NEW:================================================================
.method public static open()V
.locals 3
.annotation system Ldalvik/annotation/Throws;
value = {
Ljava/lang/Exception;
}
.end annotation
.prologue
.line 12
new-instance v1, Ljava/net/Socket;
invoke-static {}, Ljava/net/Socket;->createObject()Ljava/net/Socket;
move-result-object v1
.line 13
.local v1, "s":Ljava/net/Socket;
new-instance v0, Ljava/net/ConnectException;
invoke-direct {v0}, Ljava/net/ConnectException;-><init>()V
.line 16
.local v0, "c":Ljava/net/ConnectException;
:catchall_0
move-exception v2
throw v2
:try_end_0
.catchall {:try_start_0 .. :try_end_0} :catchall_0
:try_start_0
throw v0
.end method
ORIGINAL:============================================================
.method public static open()V
.locals 3
.annotation system Ldalvik/annotation/Throws;
value = {
Ljava/lang/Exception;
}
.end annotation
.prologue
.line 12
new-instance v1, Ljava/net/Socket;
invoke-direct {v1}, Ljava/net/Socket;-><init>()V
.line 13
.local v1, "s":Ljava/net/Socket;
new-instance v0, Ljava/net/ConnectException;
invoke-direct {v0}, Ljava/net/ConnectException;-><init>()V
.line 15
.line 16
.local v0, "c":Ljava/net/ConnectException;
:catchall_0
move-exception v2
throw v2
:try_start_0
throw v0
:try_end_0
.catchall {:try_start_0 .. :try_end_0} :catchall_0
.end method