summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Nicolas Geoffray <ngeoffray@google.com> 2017-08-29 08:11:24 +0000
committer Gerrit Code Review <noreply-gerritcodereview@google.com> 2017-08-29 08:11:24 +0000
commit74a871ae12c00b10daffca7621922ae8f55a209c (patch)
treec03cd20e0e77f9681cc3061114f981ee5b41e226
parent0ddcc468457ab52c383c173a50a44430c600617f (diff)
parentaa17ab41eb13d24f0f17ce07cdda1f141a82f037 (diff)
Merge "Unconditionally unlink image."
-rw-r--r--cmds/installd/dexopt.cpp15
1 files changed, 11 insertions, 4 deletions
diff --git a/cmds/installd/dexopt.cpp b/cmds/installd/dexopt.cpp
index d78431542c..487f6b39ef 100644
--- a/cmds/installd/dexopt.cpp
+++ b/cmds/installd/dexopt.cpp
@@ -1067,10 +1067,9 @@ class Dex2oatFileWrapper {
// (re)Creates the app image if needed.
Dex2oatFileWrapper maybe_open_app_image(const char* out_oat_path, bool profile_guided,
bool is_public, int uid, bool is_secondary_dex) {
- // Use app images only if it is enabled (by a set image format) and we are compiling
- // profile-guided (so the app image doesn't conservatively contain all classes).
- // Note that we don't create an image for secondary dex files.
- if (is_secondary_dex || !profile_guided) {
+
+ // We don't create an image for secondary dex files.
+ if (is_secondary_dex) {
return Dex2oatFileWrapper();
}
@@ -1079,6 +1078,14 @@ Dex2oatFileWrapper maybe_open_app_image(const char* out_oat_path, bool profile_g
// Happens when the out_oat_path has an unknown extension.
return Dex2oatFileWrapper();
}
+
+ // Use app images only if it is enabled (by a set image format) and we are compiling
+ // profile-guided (so the app image doesn't conservatively contain all classes).
+ if (!profile_guided) {
+ // In case there is a stale image, remove it now. Ignore any error.
+ unlink(image_path.c_str());
+ return Dex2oatFileWrapper();
+ }
char app_image_format[kPropertyValueMax];
bool have_app_image_format =
get_property("dalvik.vm.appimageformat", app_image_format, NULL) > 0;