summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndroid Build Coastguard Worker <android-build-coastguard-worker@google.com>2023-08-09 13:07:31 +0000
committerAndroid Build Coastguard Worker <android-build-coastguard-worker@google.com>2023-08-09 13:07:31 +0000
commit2457d405642334aa71b36737c39520216c4b9ff0 (patch)
treeca23e5a04b4e10f32b624bcf61366c925485a6dc
parent2e584cd36ba5013b9420ef3977e0a0c31cd8db8e (diff)
parentaf01fd1afdb9124bfdd4d8b23daa0152dd717956 (diff)
downloadunwinding-android14-mainline-healthfitness-release.tar.gz
Snap for 10632790 from af01fd1afdb9124bfdd4d8b23daa0152dd717956 to mainline-healthfitness-releaseaml_hef_341613000aml_hef_341512030aml_hef_341415040aml_hef_341311010aml_hef_341114030android14-mainline-healthfitness-release
Change-Id: Ia49038384120906134e2e739e811d763fd661ef7
-rw-r--r--libunwindstack/Unwinder.cpp16
1 files changed, 10 insertions, 6 deletions
diff --git a/libunwindstack/Unwinder.cpp b/libunwindstack/Unwinder.cpp
index 7304000..115a265 100644
--- a/libunwindstack/Unwinder.cpp
+++ b/libunwindstack/Unwinder.cpp
@@ -389,13 +389,17 @@ bool UnwinderFromPid::Init() {
}
}
- jit_debug_ptr_ = CreateJitDebug(arch_, process_memory_);
- jit_debug_ = jit_debug_ptr_.get();
- SetJitDebug(jit_debug_);
+ // jit_debug_ and dex_files_ may have already been set, for example in
+ // AndroidLocalUnwinder::InternalUnwind.
+ if (jit_debug_ == nullptr) {
+ jit_debug_ptr_ = CreateJitDebug(arch_, process_memory_);
+ SetJitDebug(jit_debug_ptr_.get());
+ }
#if defined(DEXFILE_SUPPORT)
- dex_files_ptr_ = CreateDexFiles(arch_, process_memory_);
- dex_files_ = dex_files_ptr_.get();
- SetDexFiles(dex_files_);
+ if (dex_files_ == nullptr) {
+ dex_files_ptr_ = CreateDexFiles(arch_, process_memory_);
+ SetDexFiles(dex_files_ptr_.get());
+ }
#endif
return true;