diff options
| author | Greg Clayton <gclayton@apple.com> | 2013-04-18 22:01:06 +0000 |
|---|---|---|
| committer | Greg Clayton <gclayton@apple.com> | 2013-04-18 22:01:06 +0000 |
| commit | e0c64e15a4b3349dbab5b35e1f1bbbd8a03a8a0d (patch) | |
| tree | 61611bdecfad4c5b2af36396cc744db825d202c3 | |
| parent | 6a97e89df6304a527dca48a9708b23757953a569 (diff) | |
| download | bcm5719-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.h | 15 | ||||
| -rw-r--r-- | lldb/source/Expression/IRMemoryMap.cpp | 30 |
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; } } |

