aboutsummaryrefslogtreecommitdiff
path: root/lldb/source/Expression/IRExecutionUnit.cpp
diff options
context:
space:
mode:
authorIgor Kudrin <ikudrin@accesssoftek.com>2025-06-27 13:04:25 -0700
committerGitHub <noreply@github.com>2025-06-27 13:04:25 -0700
commit21993f0a47f0364008803862dee093de62cae844 (patch)
tree6cec44de933574bac280dbd29b5c9d91c77245f0 /lldb/source/Expression/IRExecutionUnit.cpp
parent254c26d022765782ba7596c770ed15fb29149b4f (diff)
downloadllvm-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.cpp19
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;
}