Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Contribute to GitLab
Sign in
Toggle navigation
J
jadx
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
open-source
jadx
Commits
2433a7e8
Commit
2433a7e8
authored
Jul 28, 2018
by
Skylot
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
core: fix exception handler jumps (#320)
parent
6e358d3e
Show whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
4 additions
and
2 deletions
+4
-2
BlockProcessor.java
...va/jadx/core/dex/visitors/blocksmaker/BlockProcessor.java
+3
-2
BlockSplitter.java
...ava/jadx/core/dex/visitors/blocksmaker/BlockSplitter.java
+1
-0
No files found.
jadx-core/src/main/java/jadx/core/dex/visitors/blocksmaker/BlockProcessor.java
View file @
2433a7e8
...
@@ -418,8 +418,9 @@ public class BlockProcessor extends AbstractVisitor {
...
@@ -418,8 +418,9 @@ public class BlockProcessor extends AbstractVisitor {
boolean
change
=
false
;
boolean
change
=
false
;
for
(
Edge
edge
:
edges
)
{
for
(
Edge
edge
:
edges
)
{
BlockNode
target
=
edge
.
getTarget
();
BlockNode
target
=
edge
.
getTarget
();
if
(!
target
.
contains
(
AFlag
.
SYNTHETIC
))
{
BlockNode
source
=
edge
.
getSource
();
BlockSplitter
.
insertBlockBetween
(
mth
,
edge
.
getSource
(),
target
);
if
(!
target
.
contains
(
AFlag
.
SYNTHETIC
)
&&
!
source
.
contains
(
AFlag
.
SYNTHETIC
))
{
BlockSplitter
.
insertBlockBetween
(
mth
,
source
,
target
);
change
=
true
;
change
=
true
;
}
}
}
}
...
...
jadx-core/src/main/java/jadx/core/dex/visitors/blocksmaker/BlockSplitter.java
View file @
2433a7e8
...
@@ -91,6 +91,7 @@ public class BlockSplitter extends AbstractVisitor {
...
@@ -91,6 +91,7 @@ public class BlockSplitter extends AbstractVisitor {
startNew
=
isSplitByJump
(
prevInsn
,
insn
)
startNew
=
isSplitByJump
(
prevInsn
,
insn
)
||
SEPARATE_INSNS
.
contains
(
insn
.
getType
())
||
SEPARATE_INSNS
.
contains
(
insn
.
getType
())
||
isDoWhile
(
blocksMap
,
curBlock
,
insn
)
||
isDoWhile
(
blocksMap
,
curBlock
,
insn
)
||
insn
.
contains
(
AType
.
EXC_HANDLER
)
||
prevInsn
.
contains
(
AFlag
.
TRY_LEAVE
)
||
prevInsn
.
contains
(
AFlag
.
TRY_LEAVE
)
||
prevInsn
.
getType
()
==
InsnType
.
MOVE_EXCEPTION
;
||
prevInsn
.
getType
()
==
InsnType
.
MOVE_EXCEPTION
;
if
(
startNew
)
{
if
(
startNew
)
{
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment