Fix opening oat files that are out of date.
Make sure we're not using an old MAP_PRIVATE mapping of an
OatFile after a forked process modifies the underlying file.
Change-Id: I5c6caaf34272c805e40e95ee690dd948d7406751
diff --git a/runtime/native/dalvik_system_DexFile.cc b/runtime/native/dalvik_system_DexFile.cc
index 600045f..45a2eed 100644
--- a/runtime/native/dalvik_system_DexFile.cc
+++ b/runtime/native/dalvik_system_DexFile.cc
@@ -120,7 +120,9 @@
outputName.c_str(), &error_msg);
}
if (dex_file == nullptr) {
- CHECK_EQ(env->ExceptionCheck(), JNI_TRUE);
+ ScopedObjectAccess soa(env);
+ CHECK(!error_msg.empty());
+ ThrowIOException("%s", error_msg.c_str());
return 0;
}
return static_cast<jint>(reinterpret_cast<uintptr_t>(dex_file));