diff options
author | Adrian McCarthy <amccarth@google.com> | 2016-02-29 21:15:23 +0000 |
---|---|---|
committer | Adrian McCarthy <amccarth@google.com> | 2016-02-29 21:15:23 +0000 |
commit | a7ad58b61c79619d8a57b59db52acb22b020e576 (patch) | |
tree | 01a98570071f290aa98c51d143e076685f1e219b /lldb/source/Plugins/Process/Windows/MiniDump/ProcessWinMiniDump.h | |
parent | 536183275d67c1de31066386070a2fe9b403e241 (diff) | |
download | bcm5719-llvm-a7ad58b61c79619d8a57b59db52acb22b020e576.tar.gz bcm5719-llvm-a7ad58b61c79619d8a57b59db52acb22b020e576.zip |
NFC: Refactor ProcessWinMiniDump to use a more traditional pimpl idiom.
This is a mechanical refactor. There should be no functional changes in this commit.
Instead of encapsulating just the Windows-specific data, ProcessWinMiniDump now uses a private implementation class. This reduces indirections (in the source). It makes it easier to add private helper methods without touching the header and allows them to have platform-specific types as parameters. The only trick was that the pimpl class needed a back pointer in order to call a couple methods.
llvm-svn: 262256
Diffstat (limited to 'lldb/source/Plugins/Process/Windows/MiniDump/ProcessWinMiniDump.h')
-rw-r--r-- | lldb/source/Plugins/Process/Windows/MiniDump/ProcessWinMiniDump.h | 42 |
1 files changed, 3 insertions, 39 deletions
diff --git a/lldb/source/Plugins/Process/Windows/MiniDump/ProcessWinMiniDump.h b/lldb/source/Plugins/Process/Windows/MiniDump/ProcessWinMiniDump.h index 12864be3712..4239115576b 100644 --- a/lldb/source/Plugins/Process/Windows/MiniDump/ProcessWinMiniDump.h +++ b/lldb/source/Plugins/Process/Windows/MiniDump/ProcessWinMiniDump.h @@ -96,45 +96,9 @@ class ProcessWinMiniDump : public lldb_private::ProcessWindows lldb_private::ThreadList &new_thread_list) override; private: - // Describes a range of memory captured in the mini dump. - struct Range { - lldb::addr_t start; // virtual address of the beginning of the range - size_t size; // size of the range in bytes - const uint8_t *ptr; // absolute pointer to the first byte of the range - }; - - // If the mini dump has a memory range that contains the desired address, it - // returns true with the details of the range in *range_out. Otherwise, it - // returns false. - bool - FindMemoryRange(lldb::addr_t addr, Range *range_out) const; - - lldb_private::Error - MapMiniDumpIntoMemory(const char *file); - - lldb_private::ArchSpec - DetermineArchitecture(); - - void - ReadExceptionRecord(); - - void - ReadMiscInfo(); - - void - ReadModuleList(); - - // A thin wrapper around WinAPI's MiniDumpReadDumpStream to avoid redundant - // checks. If there's a failure (e.g., if the requested stream doesn't exist), - // the function returns nullptr and sets *size_out to 0. - void * - FindDumpStream(unsigned stream_number, size_t *size_out) const; - - // Isolate the data to keep Windows-specific types out of this header. Can't - // use the typical pimpl idiom because the implementation of this class also - // needs access to public and protected members of the base class. - class Data; - std::unique_ptr<Data> m_data_up; + // Keep Windows-specific types out of this header. + class Impl; + std::unique_ptr<Impl> m_impl_up; }; #endif // liblldb_ProcessWinMiniDump_h_ |