xref: /src/contrib/llvm-project/lldb/source/Utility/DataBufferLLVM.cpp (revision 81ad626541db97eb356e2c1d4a20eb2a26a766ab)
1cfca06d7SDimitry Andric //===-- DataBufferLLVM.cpp ------------------------------------------------===//
274a628f7SDimitry Andric //
35f29bb8aSDimitry Andric // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
45f29bb8aSDimitry Andric // See https://llvm.org/LICENSE.txt for license information.
55f29bb8aSDimitry Andric // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
674a628f7SDimitry Andric //
774a628f7SDimitry Andric //===----------------------------------------------------------------------===//
874a628f7SDimitry Andric 
974a628f7SDimitry Andric #include "lldb/Utility/DataBufferLLVM.h"
1074a628f7SDimitry Andric 
1174a628f7SDimitry Andric #include "llvm/Support/MemoryBuffer.h"
1274a628f7SDimitry Andric 
13344a3780SDimitry Andric #include <cassert>
1474a628f7SDimitry Andric 
1574a628f7SDimitry Andric using namespace lldb_private;
1674a628f7SDimitry Andric 
DataBufferLLVM(std::unique_ptr<llvm::MemoryBuffer> MemBuffer)17145449b1SDimitry Andric DataBufferLLVM::DataBufferLLVM(std::unique_ptr<llvm::MemoryBuffer> MemBuffer)
1874a628f7SDimitry Andric     : Buffer(std::move(MemBuffer)) {
1974a628f7SDimitry Andric   assert(Buffer != nullptr &&
2074a628f7SDimitry Andric          "Cannot construct a DataBufferLLVM with a null buffer");
2174a628f7SDimitry Andric }
2274a628f7SDimitry Andric 
23344a3780SDimitry Andric DataBufferLLVM::~DataBufferLLVM() = default;
2474a628f7SDimitry Andric 
GetBytesImpl() const25145449b1SDimitry Andric const uint8_t *DataBufferLLVM::GetBytesImpl() const {
2623629167SDimitry Andric   return reinterpret_cast<const uint8_t *>(Buffer->getBufferStart());
2723629167SDimitry Andric }
2874a628f7SDimitry Andric 
GetByteSize() const2974a628f7SDimitry Andric lldb::offset_t DataBufferLLVM::GetByteSize() const {
3074a628f7SDimitry Andric   return Buffer->getBufferSize();
3174a628f7SDimitry Andric }
32145449b1SDimitry Andric 
WritableDataBufferLLVM(std::unique_ptr<llvm::WritableMemoryBuffer> MemBuffer)33145449b1SDimitry Andric WritableDataBufferLLVM::WritableDataBufferLLVM(
34145449b1SDimitry Andric     std::unique_ptr<llvm::WritableMemoryBuffer> MemBuffer)
35145449b1SDimitry Andric     : Buffer(std::move(MemBuffer)) {
36145449b1SDimitry Andric   assert(Buffer != nullptr &&
37145449b1SDimitry Andric          "Cannot construct a WritableDataBufferLLVM with a null buffer");
38145449b1SDimitry Andric }
39145449b1SDimitry Andric 
40145449b1SDimitry Andric WritableDataBufferLLVM::~WritableDataBufferLLVM() = default;
41145449b1SDimitry Andric 
GetBytesImpl() const42145449b1SDimitry Andric const uint8_t *WritableDataBufferLLVM::GetBytesImpl() const {
43145449b1SDimitry Andric   return reinterpret_cast<const uint8_t *>(Buffer->getBufferStart());
44145449b1SDimitry Andric }
45145449b1SDimitry Andric 
GetByteSize() const46145449b1SDimitry Andric lldb::offset_t WritableDataBufferLLVM::GetByteSize() const {
47145449b1SDimitry Andric   return Buffer->getBufferSize();
48145449b1SDimitry Andric }
49145449b1SDimitry Andric 
50145449b1SDimitry Andric char DataBufferLLVM::ID;
51145449b1SDimitry Andric char WritableDataBufferLLVM::ID;
52