[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