Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Contribute to GitLab
Sign in / Register
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
202fe5a0
Commit
202fe5a0
authored
Oct 18, 2014
by
Skylot
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
core: fix links for fields in nested classes
parent
68ccf57b
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
29 additions
and
21 deletions
+29
-21
JavaClass.java
jadx-core/src/main/java/jadx/api/JavaClass.java
+24
-21
ClassNode.java
jadx-core/src/main/java/jadx/core/dex/nodes/ClassNode.java
+5
-0
No files found.
jadx-core/src/main/java/jadx/api/JavaClass.java
View file @
202fe5a0
...
...
@@ -116,28 +116,31 @@ public final class JavaClass implements JavaNode {
public
CodePosition
getDefinitionPosition
(
int
line
,
int
offset
)
{
Map
<
CodePosition
,
Object
>
map
=
getCodeAnnotations
();
Object
obj
=
map
.
get
(
new
CodePosition
(
line
,
offset
));
if
(
obj
instanceof
LineAttrNode
)
{
ClassNode
clsNode
=
null
;
if
(
obj
instanceof
ClassNode
)
{
clsNode
=
(
ClassNode
)
obj
;
}
else
if
(
obj
instanceof
MethodNode
)
{
clsNode
=
((
MethodNode
)
obj
).
getParentClass
();
}
else
if
(
obj
instanceof
FieldNode
)
{
clsNode
=
((
FieldNode
)
obj
).
getParentClass
();
}
if
(
clsNode
==
null
)
{
return
null
;
}
clsNode
=
clsNode
.
getParentClass
();
JavaClass
jCls
=
decompiler
.
findJavaClass
(
clsNode
);
if
(
jCls
==
null
)
{
return
null
;
}
jCls
.
decompile
();
int
defLine
=
((
LineAttrNode
)
obj
).
getDecompiledLine
();
return
new
CodePosition
(
jCls
,
defLine
,
0
);
if
(!(
obj
instanceof
LineAttrNode
))
{
return
null
;
}
ClassNode
clsNode
=
null
;
if
(
obj
instanceof
ClassNode
)
{
clsNode
=
(
ClassNode
)
obj
;
}
else
if
(
obj
instanceof
MethodNode
)
{
clsNode
=
((
MethodNode
)
obj
).
getParentClass
();
}
else
if
(
obj
instanceof
FieldNode
)
{
clsNode
=
((
FieldNode
)
obj
).
getParentClass
();
}
if
(
clsNode
==
null
)
{
return
null
;
}
clsNode
=
clsNode
.
getTopParentClass
();
JavaClass
jCls
=
decompiler
.
findJavaClass
(
clsNode
);
if
(
jCls
==
null
)
{
return
null
;
}
jCls
.
decompile
();
int
defLine
=
((
LineAttrNode
)
obj
).
getDecompiledLine
();
if
(
defLine
==
0
)
{
return
null
;
}
return
n
ull
;
return
n
ew
CodePosition
(
jCls
,
defLine
,
0
)
;
}
public
Integer
getSourceLine
(
int
decompiledLine
)
{
...
...
jadx-core/src/main/java/jadx/core/dex/nodes/ClassNode.java
View file @
202fe5a0
...
...
@@ -354,6 +354,11 @@ public class ClassNode extends LineAttrNode implements ILoadable {
return
parentClass
;
}
public
ClassNode
getTopParentClass
()
{
ClassNode
parent
=
getParentClass
();
return
parent
==
this
?
this
:
parent
.
getParentClass
();
}
public
List
<
ClassNode
>
getInnerClasses
()
{
return
innerClasses
;
}
...
...
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