[Lldb-commits] [lldb] [lldb] Use batched string reading in ClassDescriptorV2::ivar_t::Read (PR #201578)
via lldb-commits
lldb-commits at lists.llvm.org
Thu Jun 4 05:55:12 PDT 2026
llvmorg-github-actions[bot] wrote:
<!--LLVM PR SUMMARY COMMENT-->
@llvm/pr-subscribers-lldb
Author: Felipe de Azevedo Piovezan (felipepiovezan)
<details>
<summary>Changes</summary>
---
Full diff: https://github.com/llvm/llvm-project/pull/201578.diff
1 Files Affected:
- (modified) lldb/source/Plugins/LanguageRuntime/ObjC/AppleObjCRuntime/AppleObjCClassDescriptorV2.cpp (+13-6)
``````````diff
diff --git a/lldb/source/Plugins/LanguageRuntime/ObjC/AppleObjCRuntime/AppleObjCClassDescriptorV2.cpp b/lldb/source/Plugins/LanguageRuntime/ObjC/AppleObjCRuntime/AppleObjCClassDescriptorV2.cpp
index 38481ff9e6cfd..ace0bac9a25b2 100644
--- a/lldb/source/Plugins/LanguageRuntime/ObjC/AppleObjCRuntime/AppleObjCClassDescriptorV2.cpp
+++ b/lldb/source/Plugins/LanguageRuntime/ObjC/AppleObjCRuntime/AppleObjCClassDescriptorV2.cpp
@@ -383,13 +383,20 @@ ClassDescriptorV2::ivar_t::Read(Process *process, lldb::addr_t addr) {
result.m_alignment = extractor.GetU32_unchecked(&cursor);
result.m_size = extractor.GetU32_unchecked(&cursor);
- process->ReadCStringFromMemory(result.m_name_ptr, result.m_name, error);
- if (error.Fail())
- return error.takeError();
+ llvm::SmallVector<std::optional<std::string>> strs =
+ process->ReadCStringsFromMemory({result.m_name_ptr, result.m_type_ptr});
- process->ReadCStringFromMemory(result.m_type_ptr, result.m_type, error);
- if (error.Fail())
- return error.takeError();
+ if (!strs[0])
+ return llvm::createStringErrorV(
+ "Failed to read ivar_t::m_name_str at address {0:x}",
+ result.m_name_ptr);
+ if (!strs[1])
+ return llvm::createStringErrorV(
+ "Failed to read ivar_t::m_type_str at address {0:x}",
+ result.m_type_ptr);
+
+ result.m_name = std::move(*strs[0]);
+ result.m_type = std::move(*strs[1]);
return result;
}
``````````
</details>
https://github.com/llvm/llvm-project/pull/201578
More information about the lldb-commits
mailing list