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
f91c5d36
Commit
f91c5d36
authored
Mar 11, 2018
by
Skylot
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
res: skip padding on file end (#225)
parent
1f3aebf5
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
11 additions
and
3 deletions
+11
-3
BinaryXMLParser.java
...-core/src/main/java/jadx/core/xmlgen/BinaryXMLParser.java
+11
-3
No files found.
jadx-core/src/main/java/jadx/core/xmlgen/BinaryXMLParser.java
View file @
f91c5d36
...
...
@@ -48,6 +48,7 @@ public class BinaryXMLParser extends CommonBinaryParser {
private
ValuesParser
valuesParser
;
private
boolean
isLastEnd
=
true
;
private
boolean
isOneLine
=
true
;
private
int
namespaceDepth
=
0
;
private
int
[]
resourceIds
;
public
BinaryXMLParser
(
RootNode
root
)
{
...
...
@@ -136,6 +137,10 @@ public class BinaryXMLParser extends CommonBinaryParser {
break
;
default
:
if
(
namespaceDepth
==
0
)
{
// skip padding on file end
return
;
}
die
(
"Type: 0x"
+
Integer
.
toHexString
(
type
)
+
" not yet implemented"
);
break
;
}
...
...
@@ -166,6 +171,7 @@ public class BinaryXMLParser extends CommonBinaryParser {
int
beginPrefix
=
is
.
readInt32
();
int
beginURI
=
is
.
readInt32
();
nsMap
.
computeIfAbsent
(
getString
(
beginURI
),
k
->
getString
(
beginPrefix
));
namespaceDepth
++;
}
private
void
parseNameSpaceEnd
()
throws
IOException
{
...
...
@@ -179,6 +185,7 @@ public class BinaryXMLParser extends CommonBinaryParser {
int
comment
=
is
.
readInt32
();
int
endPrefix
=
is
.
readInt32
();
int
endURI
=
is
.
readInt32
();
namespaceDepth
--;
nsMap
.
computeIfAbsent
(
getString
(
endURI
),
k
->
getString
(
endPrefix
));
}
...
...
@@ -381,8 +388,9 @@ public class BinaryXMLParser extends CommonBinaryParser {
int
endLineNumber
=
is
.
readInt32
();
int
comment
=
is
.
readInt32
();
int
elementNS
=
is
.
readInt32
();
int
elementName
=
is
.
readInt32
();
if
(
currentTag
.
equals
(
getString
(
elementName
))
&&
isOneLine
&&
!
isLastEnd
)
{
int
elementNameId
=
is
.
readInt32
();
String
elemName
=
getString
(
elementNameId
);
if
(
currentTag
.
equals
(
elemName
)
&&
isOneLine
&&
!
isLastEnd
)
{
writer
.
add
(
"/>"
);
}
else
{
writer
.
startLine
(
"</"
);
...
...
@@ -390,7 +398,7 @@ public class BinaryXMLParser extends CommonBinaryParser {
// if (elementNS != -1) {
// writer.add(getString(elementNS)).add(':');
// }
writer
.
add
(
getString
(
elementName
)
).
add
(
">"
);
writer
.
add
(
elemName
).
add
(
">"
);
}
isLastEnd
=
true
;
if
(
writer
.
getIndent
()
!=
0
)
{
...
...
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