diff options
| author | 2023-05-02 19:14:55 +0000 | |
|---|---|---|
| committer | 2023-05-02 21:54:51 +0000 | |
| commit | 91615de633b3a3e1ee96d74beed77bdef8a5afad (patch) | |
| tree | 6bcf59ee12f23d34a33010203c210419e3344507 /compiler/optimizing/execution_subgraph_test.cc | |
| parent | ce31f9c2733331100a48d53a7014438b3fcab312 (diff) | |
Don't access component_type_ for obj-array's SizeOf
For object arrays the component-type class could be allocated in the
higher address than the object array. This causes problems in
userfaultfd GC as it frees from-space pages as the compaction
progresses.
Fortunately, for object arrays we recognize them using the class-flags
and therefore when calling SizeOf() on it in VisitRefsForCompaction(),
we can calculate component-size-shift without accessing component-type
class. For primitive object arrays it's not a problem as the
component-type class is either in boot/zygote images or in lower address
in the moving space.
Bug: 160737021
Bug: 272272332
Bug: 274327217
Test: install module and check of tombstones/ANR due to NPE in GC thread
Change-Id: Ic657ec95aed8b3642c62b82945ffabf947ee5ad7
(cherry picked from commit fa358c4160debc3620ddc95cb6630e446cb343ac)
Merged-In: Ic657ec95aed8b3642c62b82945ffabf947ee5ad7
Diffstat (limited to 'compiler/optimizing/execution_subgraph_test.cc')
0 files changed, 0 insertions, 0 deletions