From 0c55ab9001232005da9ce37563b283289cf4c5a6 Mon Sep 17 00:00:00 2001 From: Skylot Date: Sun, 22 Dec 2019 16:04:28 +0000 Subject: [PATCH] fix: resolve class cast exception introduced in CodeWriter refactoring (#810) --- .../src/main/java/jadx/core/xmlgen/ResContainer.java | 3 +-- .../src/main/java/jadx/core/xmlgen/ResTableParser.java | 8 ++++---- 2 files changed, 5 insertions(+), 6 deletions(-) diff --git a/jadx-core/src/main/java/jadx/core/xmlgen/ResContainer.java b/jadx-core/src/main/java/jadx/core/xmlgen/ResContainer.java index 1c189904b..836cfc0cb 100644 --- a/jadx-core/src/main/java/jadx/core/xmlgen/ResContainer.java +++ b/jadx-core/src/main/java/jadx/core/xmlgen/ResContainer.java @@ -9,7 +9,6 @@ import org.jetbrains.annotations.NotNull; import jadx.api.ICodeInfo; import jadx.api.ResourceFile; -import jadx.core.codegen.CodeWriter; public class ResContainer implements Comparable { @@ -34,7 +33,7 @@ public class ResContainer implements Comparable { return new ResContainer(resFile.getName(), Collections.emptyList(), resFile, DataType.RES_LINK); } - public static ResContainer resourceTable(String name, List subFiles, CodeWriter rootContent) { + public static ResContainer resourceTable(String name, List subFiles, ICodeInfo rootContent) { return new ResContainer(name, subFiles, rootContent, DataType.RES_TABLE); } diff --git a/jadx-core/src/main/java/jadx/core/xmlgen/ResTableParser.java b/jadx-core/src/main/java/jadx/core/xmlgen/ResTableParser.java index 9cec2b21c..d286d9370 100644 --- a/jadx-core/src/main/java/jadx/core/xmlgen/ResTableParser.java +++ b/jadx-core/src/main/java/jadx/core/xmlgen/ResTableParser.java @@ -10,6 +10,7 @@ import java.util.Set; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import jadx.api.ICodeInfo; import jadx.core.codegen.CodeWriter; import jadx.core.dex.attributes.AFlag; import jadx.core.dex.nodes.FieldNode; @@ -73,12 +74,12 @@ public class ResTableParser extends CommonBinaryParser { ValuesParser vp = new ValuesParser(root, strings, resStorage.getResourcesNames()); ResXmlGen resGen = new ResXmlGen(resStorage, vp); - CodeWriter content = makeXmlDump(); + ICodeInfo content = makeXmlDump(); List xmlFiles = resGen.makeResourcesXml(); return ResContainer.resourceTable("res", xmlFiles, content); } - public CodeWriter makeXmlDump() { + public ICodeInfo makeXmlDump() { CodeWriter writer = new CodeWriter(); writer.startLine(""); writer.startLine(""); @@ -94,8 +95,7 @@ public class ResTableParser extends CommonBinaryParser { } writer.decIndent(); writer.startLine(""); - writer.finish(); - return writer; + return writer.finish(); } public ResourceStorage getResStorage() {