[Lldb-commits] [PATCH] D53590: Refactor SetBaseClassesForType and DeleteBaseClasses to be more C++'y

Zachary Turner via Phabricator via lldb-commits lldb-commits at lists.llvm.org
Tue Oct 23 11:00:56 PDT 2018


zturner created this revision.
zturner added reviewers: labath, davide, clayborg.
Herald added a subscriber: JDevlieghere.

  [NFC] Refactor SetBaseClasses and DeleteBaseClasses.
  
  We currently had a 2-step process where we had to call
  SetBaseClassesForType and DeleteBaseClasses.  Every single caller
  followed this exact 2-step process, and there was manual memory
  management going on with raw pointers.  We can do better than this
  by storing a vector of unique_ptrs and passing this around.
  This makes for a cleaner API, and we only need to call one method
  so there is no possibility of a user forgetting to call
  DeleteBaseClassSpecifiers.
  
  In addition to this, it also makes for a *simpler* API.  Part of
  why I wanted to do this is because when I was implementing the native
  PDB interface I had to spend some time understanding exactly what I
  was deleting and why.  ClangAST has significant mental overhead
  associated with it, and reducing the API surface can go along
  way to making it simpler for people to understand.


https://reviews.llvm.org/D53590

Files:
  lldb/include/lldb/Symbol/ClangASTContext.h
  lldb/source/Plugins/SymbolFile/DWARF/DWARFASTParserClang.cpp
  lldb/source/Plugins/SymbolFile/DWARF/DWARFASTParserClang.h
  lldb/source/Plugins/SymbolFile/NativePDB/UdtRecordCompleter.cpp
  lldb/source/Plugins/SymbolFile/NativePDB/UdtRecordCompleter.h
  lldb/source/Plugins/SymbolFile/PDB/PDBASTParser.cpp
  lldb/source/Symbol/ClangASTContext.cpp
  lldb/unittests/Symbol/TestClangASTContext.cpp

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D53590.170700.patch
Type: text/x-patch
Size: 16825 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/lldb-commits/attachments/20181023/510d6d31/attachment-0001.bin>


More information about the lldb-commits mailing list