diff options
-rw-r--r-- | cmds/installd/otapreopt.cpp | 42 | ||||
-rw-r--r-- | opengl/libs/EGL/eglApi.cpp | 9 | ||||
-rw-r--r-- | services/inputflinger/Android.bp | 2 |
3 files changed, 34 insertions, 19 deletions
diff --git a/cmds/installd/otapreopt.cpp b/cmds/installd/otapreopt.cpp index 28c7658d6e..b2e7047a65 100644 --- a/cmds/installd/otapreopt.cpp +++ b/cmds/installd/otapreopt.cpp @@ -322,21 +322,8 @@ private: return false; } const char* isa = parameters_.instruction_set; - - // Check whether the file exists where expected. std::string dalvik_cache = GetOTADataDirectory() + "/" + DALVIK_CACHE; std::string isa_path = dalvik_cache + "/" + isa; - std::string art_path = isa_path + "/system@framework@boot.art"; - std::string oat_path = isa_path + "/system@framework@boot.oat"; - bool cleared = false; - if (access(art_path.c_str(), F_OK) == 0 && access(oat_path.c_str(), F_OK) == 0) { - // Files exist, assume everything is alright if not forced. Otherwise clean up. - if (!force) { - return true; - } - ClearDirectory(isa_path); - cleared = true; - } // Reset umask in otapreopt, so that we control the the access for the files we create. umask(0); @@ -355,17 +342,34 @@ private: } } - // Prepare to create. - if (!cleared) { + // Check whether we have files in /data. + // TODO: check that the files are correct wrt/ jars. + std::string art_path = isa_path + "/system@framework@boot.art"; + std::string oat_path = isa_path + "/system@framework@boot.oat"; + bool cleared = false; + if (access(art_path.c_str(), F_OK) == 0 && access(oat_path.c_str(), F_OK) == 0) { + // Files exist, assume everything is alright if not forced. Otherwise clean up. + if (!force) { + return true; + } ClearDirectory(isa_path); + cleared = true; } + // Check whether we have an image in /system. + // TODO: check that the files are correct wrt/ jars. std::string preopted_boot_art_path = StringPrintf("/system/framework/%s/boot.art", isa); - if (access(preopted_boot_art_path.c_str(), F_OK) != 0) { - // No preopted boot image. Try to compile. - return Dex2oatBootImage(boot_classpath_, art_path, oat_path, isa); + if (access(preopted_boot_art_path.c_str(), F_OK) == 0) { + // Note: we ignore |force| here. + return true; } - return true; + + + if (!cleared) { + ClearDirectory(isa_path); + } + + return Dex2oatBootImage(boot_classpath_, art_path, oat_path, isa); } static bool CreatePath(const std::string& path) { diff --git a/opengl/libs/EGL/eglApi.cpp b/opengl/libs/EGL/eglApi.cpp index 42049a4878..40adf8e229 100644 --- a/opengl/libs/EGL/eglApi.cpp +++ b/opengl/libs/EGL/eglApi.cpp @@ -562,6 +562,15 @@ static EGLBoolean processAttributes(egl_display_ptr dp, NativeWindowType window, break; } } + + // If the driver doesn't understand it, we should map sRGB-encoded P3 to + // sRGB rather than just dropping the colorspace on the floor. + // For this format, the driver is expected to apply the sRGB + // transfer function during framebuffer operations. + if (!copyAttribute && attr[1] == EGL_GL_COLORSPACE_DISPLAY_P3_EXT) { + strippedAttribList->push_back(attr[0]); + strippedAttribList->push_back(EGL_GL_COLORSPACE_SRGB_KHR); + } } if (copyAttribute) { strippedAttribList->push_back(attr[0]); diff --git a/services/inputflinger/Android.bp b/services/inputflinger/Android.bp index a9e5a4339c..887119992c 100644 --- a/services/inputflinger/Android.bp +++ b/services/inputflinger/Android.bp @@ -41,6 +41,8 @@ cc_library_shared { "-Wall", "-Wextra", "-Werror", + // Allow implicit fallthroughs in InputReader.cpp until they are fixed. + "-Wno-error=implicit-fallthrough", "-Wno-unused-parameter", // TODO: Move inputflinger to its own process and mark it hidden //-fvisibility=hidden |