diff options
author | Dimitry Andric <dim@FreeBSD.org> | 2020-07-26 19:36:28 +0000 |
---|---|---|
committer | Dimitry Andric <dim@FreeBSD.org> | 2020-07-26 19:36:28 +0000 |
commit | cfca06d7963fa0909f90483b42a6d7d194d01e08 (patch) | |
tree | 209fb2a2d68f8f277793fc8df46c753d31bc853b /lldb/source/API/SBReproducerPrivate.h | |
parent | 706b4fc47bbc608932d3b491ae19a3b9cde9497b (diff) |
Notes
Diffstat (limited to 'lldb/source/API/SBReproducerPrivate.h')
-rw-r--r-- | lldb/source/API/SBReproducerPrivate.h | 28 |
1 files changed, 15 insertions, 13 deletions
diff --git a/lldb/source/API/SBReproducerPrivate.h b/lldb/source/API/SBReproducerPrivate.h index edd06941398f..a4c6eb94627b 100644 --- a/lldb/source/API/SBReproducerPrivate.h +++ b/lldb/source/API/SBReproducerPrivate.h @@ -7,8 +7,8 @@ // //===----------------------------------------------------------------------===// -#ifndef LLDB_API_SBREPRODUCER_PRIVATE_H -#define LLDB_API_SBREPRODUCER_PRIVATE_H +#ifndef LLDB_SOURCE_API_SBREPRODUCERPRIVATE_H +#define LLDB_SOURCE_API_SBREPRODUCERPRIVATE_H #include "lldb/API/SBReproducer.h" @@ -20,7 +20,7 @@ #include "llvm/ADT/DenseMap.h" #define LLDB_GET_INSTRUMENTATION_DATA() \ - lldb_private::repro::GetInstrumentationData() + lldb_private::repro::InstrumentationData::Instance() namespace lldb_private { namespace repro { @@ -55,17 +55,19 @@ private: SBRegistry m_registry; }; -inline InstrumentationData GetInstrumentationData() { - if (!lldb_private::repro::Reproducer::Initialized()) - return {}; - - if (auto *g = lldb_private::repro::Reproducer::Instance().GetGenerator()) { - auto &p = g->GetOrCreate<SBProvider>(); - return {p.GetSerializer(), p.GetRegistry()}; - } +class ReplayData { +public: + ReplayData(std::unique_ptr<llvm::MemoryBuffer> memory_buffer) + : m_memory_buffer(std::move(memory_buffer)), m_registry(), + m_deserializer(m_memory_buffer->getBuffer()) {} + Deserializer &GetDeserializer() { return m_deserializer; } + Registry &GetRegistry() { return m_registry; } - return {}; -} +private: + std::unique_ptr<llvm::MemoryBuffer> m_memory_buffer; + SBRegistry m_registry; + Deserializer m_deserializer; +}; template <typename T> void RegisterMethods(Registry &R); |