diff options
| author | Igor Kudrin <ikudrin@accesssoftek.com> | 2025-06-27 13:04:25 -0700 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2025-06-27 13:04:25 -0700 |
| commit | 21993f0a47f0364008803862dee093de62cae844 (patch) | |
| tree | 6cec44de933574bac280dbd29b5c9d91c77245f0 /lldb/source/Expression/IRExecutionUnit.cpp | |
| parent | 254c26d022765782ba7596c770ed15fb29149b4f (diff) | |
| download | llvm-21993f0a47f0364008803862dee093de62cae844.tar.gz llvm-21993f0a47f0364008803862dee093de62cae844.tar.bz2 llvm-21993f0a47f0364008803862dee093de62cae844.zip | |
[lldb][NFC] Switch IRMemoryMap::Malloc to return llvm::Expected (#146016)
This will make changes in #145599 a bit nicer.
Diffstat (limited to 'lldb/source/Expression/IRExecutionUnit.cpp')
| -rw-r--r-- | lldb/source/Expression/IRExecutionUnit.cpp | 19 |
1 files changed, 12 insertions, 7 deletions
diff --git a/lldb/source/Expression/IRExecutionUnit.cpp b/lldb/source/Expression/IRExecutionUnit.cpp index 06b0cb7769f6..e445fa883302 100644 --- a/lldb/source/Expression/IRExecutionUnit.cpp +++ b/lldb/source/Expression/IRExecutionUnit.cpp @@ -57,12 +57,14 @@ IRExecutionUnit::IRExecutionUnit(std::unique_ptr<llvm::LLVMContext> &context_up, lldb::addr_t IRExecutionUnit::WriteNow(const uint8_t *bytes, size_t size, Status &error) { const bool zero_memory = false; - lldb::addr_t allocation_process_addr = + auto address_or_error = Malloc(size, 8, lldb::ePermissionsWritable | lldb::ePermissionsReadable, - eAllocationPolicyMirror, zero_memory, error); - - if (!error.Success()) + eAllocationPolicyMirror, zero_memory); + if (!address_or_error) { + error = Status::FromError(address_or_error.takeError()); return LLDB_INVALID_ADDRESS; + } + lldb::addr_t allocation_process_addr = *address_or_error; WriteMemory(allocation_process_addr, bytes, size, error); @@ -1102,9 +1104,12 @@ bool IRExecutionUnit::CommitOneAllocation(lldb::ProcessSP &process_sp, break; default: const bool zero_memory = false; - record.m_process_address = - Malloc(record.m_size, record.m_alignment, record.m_permissions, - eAllocationPolicyProcessOnly, zero_memory, error); + if (auto address_or_error = + Malloc(record.m_size, record.m_alignment, record.m_permissions, + eAllocationPolicyProcessOnly, zero_memory)) + record.m_process_address = *address_or_error; + else + error = Status::FromError(address_or_error.takeError()); break; } |
