diff options
Diffstat (limited to 'libunwindstack/DexFiles.cpp')
| -rw-r--r-- | libunwindstack/DexFiles.cpp | 13 |
1 files changed, 5 insertions, 8 deletions
diff --git a/libunwindstack/DexFiles.cpp b/libunwindstack/DexFiles.cpp index 451a0b90d..63a77e50f 100644 --- a/libunwindstack/DexFiles.cpp +++ b/libunwindstack/DexFiles.cpp @@ -48,11 +48,7 @@ DexFiles::DexFiles(std::shared_ptr<Memory>& memory) : Global(memory) {} DexFiles::DexFiles(std::shared_ptr<Memory>& memory, std::vector<std::string>& search_libs) : Global(memory, search_libs) {} -DexFiles::~DexFiles() { - for (auto& entry : files_) { - delete entry.second; - } -} +DexFiles::~DexFiles() {} void DexFiles::ProcessArch() { switch (arch()) { @@ -137,10 +133,11 @@ DexFile* DexFiles::GetDexFile(uint64_t dex_file_offset, MapInfo* info) { DexFile* dex_file; auto entry = files_.find(dex_file_offset); if (entry == files_.end()) { - dex_file = DexFile::Create(dex_file_offset, memory_.get(), info); - files_[dex_file_offset] = dex_file; + std::unique_ptr<DexFile> new_dex_file = DexFile::Create(dex_file_offset, memory_.get(), info); + dex_file = new_dex_file.get(); + files_[dex_file_offset] = std::move(new_dex_file); } else { - dex_file = entry->second; + dex_file = entry->second.get(); } return dex_file; } |
