diff options
author | 2016-06-02 11:48:30 -0700 | |
---|---|---|
committer | 2016-06-03 12:45:04 -0700 | |
commit | d6d49e56c2b7b11f474acb80cb02bb1fe9b7861e (patch) | |
tree | b6df3e71798c9a547e56dcbe7d7b7a6f3dc003a2 /compiler/oat_test.cc | |
parent | b089eccf503646e6ed2d5bb20d973d9131166655 (diff) |
Hold dex caches live in class table
Prevents temporary dex caches being unloaded for the same dex file.
Usually this is OK, but if someone resolved a string in that dex
cache, it could leave stale pointers in BSS. Also it can use extra
memory in linear alloc if we allocate dex cache arrays multiple
times.
Bug: 29083330
(cherry picked from commit f284d448e3edd428b6ade473d0993028638b2064)
Change-Id: Ie1b0b0cf835a998e19227cbb90014011a6cd40c4
Diffstat (limited to 'compiler/oat_test.cc')
-rw-r--r-- | compiler/oat_test.cc | 7 |
1 files changed, 2 insertions, 5 deletions
diff --git a/compiler/oat_test.cc b/compiler/oat_test.cc index 21e198c12f..6d1f94491e 100644 --- a/compiler/oat_test.cc +++ b/compiler/oat_test.cc @@ -199,7 +199,7 @@ class OatTest : public CommonCompilerTest { for (const std::unique_ptr<const DexFile>& dex_file : opened_dex_files) { dex_files.push_back(dex_file.get()); ScopedObjectAccess soa(Thread::Current()); - class_linker->RegisterDexFile(*dex_file, runtime->GetLinearAlloc()); + class_linker->RegisterDexFile(*dex_file, nullptr); } linker::MultiOatRelativePatcher patcher(compiler_driver_->GetInstructionSet(), instruction_set_features_.get()); @@ -491,10 +491,7 @@ TEST_F(OatTest, EmptyTextSection) { ClassLinker* const class_linker = Runtime::Current()->GetClassLinker(); for (const DexFile* dex_file : dex_files) { ScopedObjectAccess soa(Thread::Current()); - class_linker->RegisterDexFile( - *dex_file, - class_linker->GetOrCreateAllocatorForClassLoader( - soa.Decode<mirror::ClassLoader*>(class_loader))); + class_linker->RegisterDexFile(*dex_file, soa.Decode<mirror::ClassLoader*>(class_loader)); } compiler_driver_->SetDexFilesForOatFile(dex_files); compiler_driver_->CompileAll(class_loader, dex_files, &timings); |