[PATCH] D22693: More strongly separate the PDB reading interfaces and PDB writing interfaces

Zachary Turner via llvm-commits llvm-commits at lists.llvm.org
Fri Jul 22 13:59:18 PDT 2016


zturner updated this revision to Diff 65144.
zturner added a comment.

The breaking change I mentioned from before is no longer an issue.  In addition, this patch of makes things a little bit more sane.  Previously it was possible to have a write-only interface.  Now all writable interfaces are also readable.  This mimics the way `MutableArrayRef` / `ArrayRef` and other similar classes in LLVM work.  Because of this, `WritableMappedBlockStream` can both read and write, and it now has to deal with the same issue that `MappedBlockStream` used to have to deal with.  While it adds some that complexity back, it has been working and well tested, and removes the possibility of having strange errors pop up that are difficult to figure out.  (Plus it makes tests cleaner)


https://reviews.llvm.org/D22693

Files:
  include/llvm/DebugInfo/CodeView/CVRecord.h
  include/llvm/DebugInfo/CodeView/ModuleSubstream.h
  include/llvm/DebugInfo/CodeView/ModuleSubstreamVisitor.h
  include/llvm/DebugInfo/Msf/ByteStream.h
  include/llvm/DebugInfo/Msf/MappedBlockStream.h
  include/llvm/DebugInfo/Msf/MsfBuilder.h
  include/llvm/DebugInfo/Msf/MsfCommon.h
  include/llvm/DebugInfo/Msf/StreamArray.h
  include/llvm/DebugInfo/Msf/StreamInterface.h
  include/llvm/DebugInfo/Msf/StreamReader.h
  include/llvm/DebugInfo/Msf/StreamRef.h
  include/llvm/DebugInfo/Msf/StreamWriter.h
  include/llvm/DebugInfo/PDB/PDBTypes.h
  include/llvm/DebugInfo/PDB/Raw/DbiStream.h
  include/llvm/DebugInfo/PDB/Raw/DbiStreamBuilder.h
  include/llvm/DebugInfo/PDB/Raw/InfoStream.h
  include/llvm/DebugInfo/PDB/Raw/InfoStreamBuilder.h
  include/llvm/DebugInfo/PDB/Raw/ModInfo.h
  include/llvm/DebugInfo/PDB/Raw/ModStream.h
  include/llvm/DebugInfo/PDB/Raw/NameHashTable.h
  include/llvm/DebugInfo/PDB/Raw/NameMap.h
  include/llvm/DebugInfo/PDB/Raw/NameMapBuilder.h
  include/llvm/DebugInfo/PDB/Raw/PDBFile.h
  include/llvm/DebugInfo/PDB/Raw/PDBFileBuilder.h
  include/llvm/DebugInfo/PDB/Raw/RawTypes.h
  lib/DebugInfo/CodeView/ModuleSubstream.cpp
  lib/DebugInfo/CodeView/ModuleSubstreamVisitor.cpp
  lib/DebugInfo/CodeView/TypeDumper.cpp
  lib/DebugInfo/Msf/ByteStream.cpp
  lib/DebugInfo/Msf/CMakeLists.txt
  lib/DebugInfo/Msf/MappedBlockStream.cpp
  lib/DebugInfo/Msf/MsfBuilder.cpp
  lib/DebugInfo/Msf/StreamReader.cpp
  lib/DebugInfo/Msf/StreamWriter.cpp
  lib/DebugInfo/PDB/Raw/DbiStream.cpp
  lib/DebugInfo/PDB/Raw/DbiStreamBuilder.cpp
  lib/DebugInfo/PDB/Raw/InfoStream.cpp
  lib/DebugInfo/PDB/Raw/InfoStreamBuilder.cpp
  lib/DebugInfo/PDB/Raw/ModInfo.cpp
  lib/DebugInfo/PDB/Raw/ModStream.cpp
  lib/DebugInfo/PDB/Raw/NameMap.cpp
  lib/DebugInfo/PDB/Raw/NameMapBuilder.cpp
  lib/DebugInfo/PDB/Raw/PDBFile.cpp
  lib/DebugInfo/PDB/Raw/PDBFileBuilder.cpp
  lib/DebugInfo/PDB/Raw/RawSession.cpp
  lib/DebugInfo/PDB/Raw/TpiStream.cpp
  tools/llvm-pdbdump/LLVMOutputStyle.cpp
  tools/llvm-pdbdump/llvm-pdbdump.cpp
  tools/llvm-readobj/COFFDumper.cpp
  unittests/DebugInfo/PDB/MappedBlockStreamTest.cpp
  unittests/DebugInfo/PDB/MsfBuilderTest.cpp

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D22693.65144.patch
Type: text/x-patch
Size: 124709 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20160722/0c981be7/attachment.bin>


More information about the llvm-commits mailing list