diff options
| author | android-build-team Robot <android-build-team-robot@google.com> | 2021-06-05 03:01:28 +0000 |
|---|---|---|
| committer | android-build-team Robot <android-build-team-robot@google.com> | 2021-06-05 03:01:28 +0000 |
| commit | 707cb88cc7762c4732974a44e476b12d4b23c9fc (patch) | |
| tree | 790d939aa65ad043194b9604e8fe13b68d862955 | |
| parent | 37274da1bd5f3bb2259c0edd6aff767c3998af73 (diff) | |
| parent | b887dc0b5c5ac8ffa993a1ac6899ae92b6dbe8cb (diff) | |
Snap for 7428328 from b887dc0b5c5ac8ffa993a1ac6899ae92b6dbe8cb to sc-release
Change-Id: I1cf85dd337f1adc67edb1697678c4d5ec2290a70
| -rw-r--r-- | libc/bionic/malloc_heapprofd.cpp | 10 |
1 files changed, 3 insertions, 7 deletions
diff --git a/libc/bionic/malloc_heapprofd.cpp b/libc/bionic/malloc_heapprofd.cpp index 198bcbab7..741b45e98 100644 --- a/libc/bionic/malloc_heapprofd.cpp +++ b/libc/bionic/malloc_heapprofd.cpp @@ -325,12 +325,12 @@ void HeapprofdRememberHookConflict() { static void CommonInstallHooks(libc_globals* globals) { void* impl_handle = atomic_load(&gHeapprofdHandle); - bool reusing_handle = impl_handle != nullptr; - if (!reusing_handle) { + if (impl_handle == nullptr) { impl_handle = LoadSharedLibrary(kHeapprofdSharedLib, kHeapprofdPrefix, &globals->malloc_dispatch_table); if (impl_handle == nullptr) { return; } + atomic_store(&gHeapprofdHandle, impl_handle); } else if (!InitSharedLibrary(impl_handle, kHeapprofdSharedLib, kHeapprofdPrefix, &globals->malloc_dispatch_table)) { return; } @@ -341,11 +341,7 @@ static void CommonInstallHooks(libc_globals* globals) { // MaybeModifyGlobals locks at this point. atomic_store(&gPreviousDefaultDispatchTable, GetDefaultDispatchTable()); - if (FinishInstallHooks(globals, nullptr, kHeapprofdPrefix)) { - atomic_store(&gHeapprofdHandle, impl_handle); - } else if (!reusing_handle) { - dlclose(impl_handle); - } + FinishInstallHooks(globals, nullptr, kHeapprofdPrefix); } void HeapprofdInstallHooksAtInit(libc_globals* globals) { |
