diff --git a/brut.apktool/apktool-lib/src/main/java/brut/androlib/res/decoder/ARSCDecoder.java b/brut.apktool/apktool-lib/src/main/java/brut/androlib/res/decoder/ARSCDecoder.java index ce316d6a7a..0a19db6e6f 100644 --- a/brut.apktool/apktool-lib/src/main/java/brut/androlib/res/decoder/ARSCDecoder.java +++ b/brut.apktool/apktool-lib/src/main/java/brut/androlib/res/decoder/ARSCDecoder.java @@ -128,9 +128,11 @@ private ResPackage readTablePackage() throws IOException, AndrolibException { mPkg = new ResPackage(mResTable, id, name); nextChunk(); - boolean flag = true; - while (flag) { + + chunkLoop: + for (;;) { switch (mHeader.type) { + case ARSCHeader.XML_TYPE_TYPE: case ARSCHeader.XML_TYPE_SPEC_TYPE: readTableTypeSpec(); break; @@ -147,8 +149,7 @@ private ResPackage readTablePackage() throws IOException, AndrolibException { readStagedAliasSpec(); break; default: - flag = false; - break; + break chunkLoop; } } @@ -168,9 +169,7 @@ private void readLibraryType() throws AndrolibException, IOException { LOGGER.info(String.format("Decoding Shared Library (%s), pkgId: %d", packageName, packageId)); } - while(nextChunk().type == ARSCHeader.XML_TYPE_TYPE) { - readTableTypeSpec(); - } + nextChunk(); } private void readStagedAliasSpec() throws IOException {