From 3570e0eb29e75ed2706efd03595926e1764e77b3 Mon Sep 17 00:00:00 2001 From: solohsu Date: Fri, 22 Mar 2019 00:58:11 +0800 Subject: [PATCH] Prevent generating dex in vain Generated dex bytes are useless if createNewFile failed. --- dexmaker/src/main/java/external/com/android/dx/DexMaker.java | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/dexmaker/src/main/java/external/com/android/dx/DexMaker.java b/dexmaker/src/main/java/external/com/android/dx/DexMaker.java index 3f151489..037cb428 100644 --- a/dexmaker/src/main/java/external/com/android/dx/DexMaker.java +++ b/dexmaker/src/main/java/external/com/android/dx/DexMaker.java @@ -525,8 +525,6 @@ public final class DexMaker { return generateClassLoader(result, dexCache, parent); } - byte[] dex = generate(); - /* * This implementation currently dumps the dex to the filesystem. It * jars the emitted .dex for the benefit of Gingerbread and earlier @@ -537,6 +535,7 @@ public final class DexMaker { result.createNewFile(); JarOutputStream jarOut = new JarOutputStream(new FileOutputStream(result)); JarEntry entry = new JarEntry(DexFormat.DEX_IN_JAR_NAME); + byte[] dex = generate(); entry.setSize(dex.length); jarOut.putNextEntry(entry); jarOut.write(dex);