diff options
author | Christopher Ferris <cferris@google.com> | 2019-03-22 18:54:58 -0700 |
---|---|---|
committer | android-build-merger <android-build-merger@google.com> | 2019-03-22 18:54:58 -0700 |
commit | fe8c297edfb0b79ac12a0f2b4c4c3952500d808d (patch) | |
tree | 24de748bcd50dbc19bab882b77d0c5a636ae3513 | |
parent | 58d94c547230b0074b7af73dfd040ea4b92216d5 (diff) | |
parent | 766934fd92bb4e8d8fac90f95f839193b27fa8d9 (diff) | |
download | platform_external_jemalloc_new-fe8c297edfb0b79ac12a0f2b4c4c3952500d808d.tar.gz platform_external_jemalloc_new-fe8c297edfb0b79ac12a0f2b4c4c3952500d808d.tar.bz2 platform_external_jemalloc_new-fe8c297edfb0b79ac12a0f2b4c4c3952500d808d.zip |
Fix bug trying to examine unused extents. am: 46971b81ee am: 08d6c0f845
am: 766934fd92
Change-Id: Ic95f585264bf0b8ab7f75b8a04c04bc5ca779e17
-rw-r--r-- | src/android_je_iterate.c | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/src/android_je_iterate.c b/src/android_je_iterate.c index f0a4cc3e..ca776e00 100644 --- a/src/android_je_iterate.c +++ b/src/android_je_iterate.c @@ -34,6 +34,12 @@ int je_iterate(uintptr_t base, size_t size, continue; } + if (extent_szind_get_maybe_invalid(extent) >= NSIZES) { + // Ignore this unused extent. + ptr = (uintptr_t)extent_past_get(extent); + continue; + } + szind_t szind; bool slab; rtree_szind_slab_read(tsd_tsdn(tsd), &extents_rtree, rtree_ctx, ptr, true, &szind, &slab); @@ -56,8 +62,7 @@ int je_iterate(uintptr_t base, size_t size, callback(allocated_ptr, bin_size, arg); } } - } else if (extent_state_get(extent) == extent_state_active && - extent_szind_get_maybe_invalid(extent) < NSIZES) { + } else if (extent_state_get(extent) == extent_state_active) { // Large allocation. uintptr_t base_ptr = (uintptr_t)extent_addr_get(extent); if (ptr <= base_ptr) { |