xref: /llvm-project/lldb/source/Utility/DataBufferLLVM.cpp (revision fc54427e76c89e567390dd4a1d64a65568f4ec26)
180814287SRaphael Isemann //===-- DataBufferLLVM.cpp ------------------------------------------------===//
2666cc0b2SZachary Turner //
32946cd70SChandler Carruth // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
42946cd70SChandler Carruth // See https://llvm.org/LICENSE.txt for license information.
52946cd70SChandler Carruth // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
6666cc0b2SZachary Turner //
7666cc0b2SZachary Turner //===----------------------------------------------------------------------===//
8666cc0b2SZachary Turner 
9666cc0b2SZachary Turner #include "lldb/Utility/DataBufferLLVM.h"
10666cc0b2SZachary Turner 
11666cc0b2SZachary Turner #include "llvm/Support/MemoryBuffer.h"
12666cc0b2SZachary Turner 
1376e47d48SRaphael Isemann #include <cassert>
144479ac15SZachary Turner 
15666cc0b2SZachary Turner using namespace lldb_private;
16666cc0b2SZachary Turner 
DataBufferLLVM(std::unique_ptr<llvm::MemoryBuffer> MemBuffer)17*fc54427eSJonas Devlieghere DataBufferLLVM::DataBufferLLVM(std::unique_ptr<llvm::MemoryBuffer> MemBuffer)
18666cc0b2SZachary Turner     : Buffer(std::move(MemBuffer)) {
19666cc0b2SZachary Turner   assert(Buffer != nullptr &&
20666cc0b2SZachary Turner          "Cannot construct a DataBufferLLVM with a null buffer");
21666cc0b2SZachary Turner }
22666cc0b2SZachary Turner 
23fd2433e1SJonas Devlieghere DataBufferLLVM::~DataBufferLLVM() = default;
24666cc0b2SZachary Turner 
GetBytesImpl() const25*fc54427eSJonas Devlieghere const uint8_t *DataBufferLLVM::GetBytesImpl() const {
2650251fc7SPavel Labath   return reinterpret_cast<const uint8_t *>(Buffer->getBufferStart());
2750251fc7SPavel Labath }
28666cc0b2SZachary Turner 
GetByteSize() const29666cc0b2SZachary Turner lldb::offset_t DataBufferLLVM::GetByteSize() const {
30666cc0b2SZachary Turner   return Buffer->getBufferSize();
31666cc0b2SZachary Turner }
32*fc54427eSJonas Devlieghere 
WritableDataBufferLLVM(std::unique_ptr<llvm::WritableMemoryBuffer> MemBuffer)33*fc54427eSJonas Devlieghere WritableDataBufferLLVM::WritableDataBufferLLVM(
34*fc54427eSJonas Devlieghere     std::unique_ptr<llvm::WritableMemoryBuffer> MemBuffer)
35*fc54427eSJonas Devlieghere     : Buffer(std::move(MemBuffer)) {
36*fc54427eSJonas Devlieghere   assert(Buffer != nullptr &&
37*fc54427eSJonas Devlieghere          "Cannot construct a WritableDataBufferLLVM with a null buffer");
38*fc54427eSJonas Devlieghere }
39*fc54427eSJonas Devlieghere 
40*fc54427eSJonas Devlieghere WritableDataBufferLLVM::~WritableDataBufferLLVM() = default;
41*fc54427eSJonas Devlieghere 
GetBytesImpl() const42*fc54427eSJonas Devlieghere const uint8_t *WritableDataBufferLLVM::GetBytesImpl() const {
43*fc54427eSJonas Devlieghere   return reinterpret_cast<const uint8_t *>(Buffer->getBufferStart());
44*fc54427eSJonas Devlieghere }
45*fc54427eSJonas Devlieghere 
GetByteSize() const46*fc54427eSJonas Devlieghere lldb::offset_t WritableDataBufferLLVM::GetByteSize() const {
47*fc54427eSJonas Devlieghere   return Buffer->getBufferSize();
48*fc54427eSJonas Devlieghere }
49*fc54427eSJonas Devlieghere 
50*fc54427eSJonas Devlieghere char DataBufferLLVM::ID;
51*fc54427eSJonas Devlieghere char WritableDataBufferLLVM::ID;
52