From 71202f8ed84edc6ab57e7b6c26f0a1ec97d5adc6 Mon Sep 17 00:00:00 2001 From: Calin Juravle Date: Thu, 10 Jul 2014 11:35:38 +0100 Subject: Use the provided path when opening dex files. Previously we would use the canonical path. If the path contains symlinks it may generate the wrong file name when searching for the containing oat file. This is because we don't apply any canonicalization when dex files are generated so we think we're looking for somthing else. Bug: 15563230 Change-Id: I5923bdd2520a91019102ef6256d4c97fd5b499df --- dalvik/src/main/java/dalvik/system/DexFile.java | 16 +++++----------- 1 file changed, 5 insertions(+), 11 deletions(-) (limited to 'dalvik/src') diff --git a/dalvik/src/main/java/dalvik/system/DexFile.java b/dalvik/src/main/java/dalvik/system/DexFile.java index 5a9c01a..8c78312 100644 --- a/dalvik/src/main/java/dalvik/system/DexFile.java +++ b/dalvik/src/main/java/dalvik/system/DexFile.java @@ -281,21 +281,15 @@ public final class DexFile { } } - /* - * Open a DEX file. The value returned is a magic VM cookie. On - * failure, an IOException is thrown. - */ - private static long openDexFile(String sourceName, String outputName, int flags) throws IOException { - return openDexFileNative(new File(sourceName).getCanonicalPath(), - (outputName == null) ? null : new File(outputName).getCanonicalPath(), - flags); - } - private static native void closeDexFile(long cookie); private static native Class defineClassNative(String name, ClassLoader loader, long cookie) throws ClassNotFoundException, NoClassDefFoundError; private static native String[] getClassNameList(long cookie); - private static native long openDexFileNative(String sourceName, String outputName, int flags); + /* + * Open a DEX file. The value returned is a magic VM cookie. On + * failure, an IOException is thrown. + */ + private static native long openDexFile(String sourceName, String outputName, int flags); /** * Returns true if the VM believes that the apk/jar file is out of date -- cgit v1.1