OSDN Git Service

Hold dex caches live in class table
authorMathieu Chartier <mathieuc@google.com>
Thu, 2 Jun 2016 18:48:30 +0000 (11:48 -0700)
committerMathieu Chartier <mathieuc@google.com>
Fri, 3 Jun 2016 19:45:04 +0000 (12:45 -0700)
commitd6d49e56c2b7b11f474acb80cb02bb1fe9b7861e
treeb6df3e71798c9a547e56dcbe7d7b7a6f3dc003a2
parentb089eccf503646e6ed2d5bb20d973d9131166655
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
12 files changed:
compiler/driver/compiler_driver-inl.h
compiler/driver/compiler_driver.cc
compiler/oat_test.cc
dex2oat/dex2oat.cc
oatdump/oatdump.cc
runtime/class_linker.cc
runtime/class_linker.h
runtime/class_table-inl.h
runtime/class_table.cc
runtime/class_table.h
runtime/native/dalvik_system_DexFile.cc
runtime/native/dalvik_system_VMRuntime.cc