summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGreg Clayton <gclayton@apple.com>2013-04-18 22:01:06 +0000
committerGreg Clayton <gclayton@apple.com>2013-04-18 22:01:06 +0000
commite0c64e15a4b3349dbab5b35e1f1bbbd8a03a8a0d (patch)
tree61611bdecfad4c5b2af36396cc744db825d202c3
parent6a97e89df6304a527dca48a9708b23757953a569 (diff)
downloadbcm5719-llvm-e0c64e15a4b3349dbab5b35e1f1bbbd8a03a8a0d.tar.gz
bcm5719-llvm-e0c64e15a4b3349dbab5b35e1f1bbbd8a03a8a0d.zip
Try to unbreak the lldb-x86_64-linux buildbot after recent std::auto_ptr/std::unique_ptr changes.
llvm-svn: 179799
-rw-r--r--lldb/include/lldb/Expression/IRMemoryMap.h15
-rw-r--r--lldb/source/Expression/IRMemoryMap.cpp30
2 files changed, 27 insertions, 18 deletions
diff --git a/lldb/include/lldb/Expression/IRMemoryMap.h b/lldb/include/lldb/Expression/IRMemoryMap.h
index 766615934fd..8d2df83d5e2 100644
--- a/lldb/include/lldb/Expression/IRMemoryMap.h
+++ b/lldb/include/lldb/Expression/IRMemoryMap.h
@@ -83,10 +83,19 @@ private:
size_t m_size; ///< The size of the requested allocation
uint32_t m_permissions; ///< The access permissions on the memory in the process. In the host, the memory is always read/write.
uint8_t m_alignment; ///< The alignment of the requested allocation
-
- STD_UNIQUE_PTR(DataBufferHeap) m_data;
-
+ STD_UNIQUE_PTR(DataBufferHeap) m_data_ap;
AllocationPolicy m_policy;
+
+ Allocation () :
+ m_process_alloc (LLDB_INVALID_ADDRESS),
+ m_process_start (LLDB_INVALID_ADDRESS),
+ m_size (0),
+ m_permissions (0),
+ m_alignment (0),
+ m_data_ap (),
+ m_policy (eAllocationPolicyInvalid)
+ {
+ }
};
lldb::ProcessWP m_process_wp;
diff --git a/lldb/source/Expression/IRMemoryMap.cpp b/lldb/source/Expression/IRMemoryMap.cpp
index 84ad8eb443b..fedbc249735 100644
--- a/lldb/source/Expression/IRMemoryMap.cpp
+++ b/lldb/source/Expression/IRMemoryMap.cpp
@@ -241,12 +241,12 @@ IRMemoryMap::Malloc (size_t size, uint8_t alignment, uint32_t permissions, Alloc
default:
assert (0 && "We cannot reach this!");
case eAllocationPolicyHostOnly:
- allocation.m_data.reset(new DataBufferHeap(size, 0));
+ allocation.m_data_ap.reset(new DataBufferHeap(size, 0));
break;
case eAllocationPolicyProcessOnly:
break;
case eAllocationPolicyMirror:
- allocation.m_data.reset(new DataBufferHeap(size, 0));
+ allocation.m_data_ap.reset(new DataBufferHeap(size, 0));
break;
}
@@ -355,22 +355,22 @@ IRMemoryMap::WriteMemory (lldb::addr_t process_address, const uint8_t *bytes, si
error.SetErrorString("Couldn't write: invalid allocation policy");
return;
case eAllocationPolicyHostOnly:
- if (!allocation.m_data)
+ if (!allocation.m_data_ap.get())
{
error.SetErrorToGenericError();
error.SetErrorString("Couldn't write: data buffer is empty");
return;
}
- ::memcpy (allocation.m_data->GetBytes() + offset, bytes, size);
+ ::memcpy (allocation.m_data_ap->GetBytes() + offset, bytes, size);
break;
case eAllocationPolicyMirror:
- if (!allocation.m_data)
+ if (!allocation.m_data_ap.get())
{
error.SetErrorToGenericError();
error.SetErrorString("Couldn't write: data buffer is empty");
return;
}
- ::memcpy (allocation.m_data->GetBytes() + offset, bytes, size);
+ ::memcpy (allocation.m_data_ap->GetBytes() + offset, bytes, size);
process_sp = m_process_wp.lock();
if (process_sp)
{
@@ -485,13 +485,13 @@ IRMemoryMap::ReadMemory (uint8_t *bytes, lldb::addr_t process_address, size_t si
error.SetErrorString("Couldn't read: invalid allocation policy");
return;
case eAllocationPolicyHostOnly:
- if (!allocation.m_data)
+ if (!allocation.m_data_ap.get())
{
error.SetErrorToGenericError();
error.SetErrorString("Couldn't read: data buffer is empty");
return;
}
- ::memcpy (bytes, allocation.m_data->GetBytes() + offset, size);
+ ::memcpy (bytes, allocation.m_data_ap->GetBytes() + offset, size);
break;
case eAllocationPolicyMirror:
process_sp = m_process_wp.lock();
@@ -503,13 +503,13 @@ IRMemoryMap::ReadMemory (uint8_t *bytes, lldb::addr_t process_address, size_t si
}
else
{
- if (!allocation.m_data)
+ if (!allocation.m_data_ap.get())
{
error.SetErrorToGenericError();
error.SetErrorString("Couldn't read: data buffer is empty");
return;
}
- ::memcpy (bytes, allocation.m_data->GetBytes() + offset, size);
+ ::memcpy (bytes, allocation.m_data_ap->GetBytes() + offset, size);
}
break;
case eAllocationPolicyProcessOnly:
@@ -619,7 +619,7 @@ IRMemoryMap::GetMemoryData (DataExtractor &extractor, lldb::addr_t process_addre
{
lldb::ProcessSP process_sp = m_process_wp.lock();
- if (!allocation.m_data.get())
+ if (!allocation.m_data_ap.get())
{
error.SetErrorToGenericError();
error.SetErrorString("Couldn't get memory data: data buffer is empty");
@@ -627,23 +627,23 @@ IRMemoryMap::GetMemoryData (DataExtractor &extractor, lldb::addr_t process_addre
}
if (process_sp)
{
- process_sp->ReadMemory(allocation.m_process_start, allocation.m_data->GetBytes(), allocation.m_data->GetByteSize(), error);
+ process_sp->ReadMemory(allocation.m_process_start, allocation.m_data_ap->GetBytes(), allocation.m_data_ap->GetByteSize(), error);
if (!error.Success())
return;
uint64_t offset = process_address - allocation.m_process_start;
- extractor = DataExtractor(allocation.m_data->GetBytes() + offset, size, GetByteOrder(), GetAddressByteSize());
+ extractor = DataExtractor(allocation.m_data_ap->GetBytes() + offset, size, GetByteOrder(), GetAddressByteSize());
return;
}
}
case eAllocationPolicyHostOnly:
- if (!allocation.m_data.get())
+ if (!allocation.m_data_ap.get())
{
error.SetErrorToGenericError();
error.SetErrorString("Couldn't get memory data: data buffer is empty");
return;
}
uint64_t offset = process_address - allocation.m_process_start;
- extractor = DataExtractor(allocation.m_data->GetBytes() + offset, size, GetByteOrder(), GetAddressByteSize());
+ extractor = DataExtractor(allocation.m_data_ap->GetBytes() + offset, size, GetByteOrder(), GetAddressByteSize());
return;
}
}
OpenPOWER on IntegriCloud