[PATCH] D25108: Do not pass a superblock to PDBFileBuilder.

Rui Ueyama via llvm-commits llvm-commits at lists.llvm.org
Fri Sep 30 13:53:32 PDT 2016


ruiu updated this revision to Diff 73132.
ruiu added a comment.

- Merged two test CHECKs.


https://reviews.llvm.org/D25108

Files:
  include/llvm/DebugInfo/MSF/MSFBuilder.h
  include/llvm/DebugInfo/PDB/Raw/PDBFileBuilder.h
  lib/DebugInfo/MSF/MSFBuilder.cpp
  lib/DebugInfo/PDB/Raw/PDBFileBuilder.cpp
  test/DebugInfo/PDB/pdbdump-readwrite.test
  tools/llvm-pdbdump/llvm-pdbdump.cpp


Index: tools/llvm-pdbdump/llvm-pdbdump.cpp
===================================================================
--- tools/llvm-pdbdump/llvm-pdbdump.cpp
+++ tools/llvm-pdbdump/llvm-pdbdump.cpp
@@ -323,7 +323,7 @@
 
   PDBFileBuilder Builder(Allocator);
 
-  ExitOnErr(Builder.initialize(YamlObj.Headers->SuperBlock));
+  ExitOnErr(Builder.initialize(YamlObj.Headers->SuperBlock.BlockSize));
   // Add each of the reserved streams.  We ignore stream metadata in the
   // yaml, because we will reconstruct our own view of the streams.  For
   // example, the YAML may say that there were 20 streams in the original
Index: test/DebugInfo/PDB/pdbdump-readwrite.test
===================================================================
--- test/DebugInfo/PDB/pdbdump-readwrite.test
+++ test/DebugInfo/PDB/pdbdump-readwrite.test
@@ -8,8 +8,8 @@
 
 CHECK:      FileHeaders {
 CHECK-NEXT:   BlockSize: 4096
-CHECK-NEXT:   FreeBlockMap: 2
-CHECK-NEXT:   NumBlocks: 25
+CHECK-NEXT:   FreeBlockMap:
+CHECK-NEXT:   NumBlocks:
 CHECK-NEXT:   NumDirectoryBytes:
 CHECK-NEXT:   Unknown1: 0
 CHECK-NEXT:   BlockMapAddr:
Index: lib/DebugInfo/PDB/Raw/PDBFileBuilder.cpp
===================================================================
--- lib/DebugInfo/PDB/Raw/PDBFileBuilder.cpp
+++ lib/DebugInfo/PDB/Raw/PDBFileBuilder.cpp
@@ -32,18 +32,11 @@
 PDBFileBuilder::PDBFileBuilder(BumpPtrAllocator &Allocator)
     : Allocator(Allocator) {}
 
-Error PDBFileBuilder::initialize(const msf::SuperBlock &Super) {
-  auto ExpectedMsf =
-      MSFBuilder::create(Allocator, Super.BlockSize, Super.NumBlocks);
+Error PDBFileBuilder::initialize(uint32_t BlockSize) {
+  auto ExpectedMsf = MSFBuilder::create(Allocator, BlockSize);
   if (!ExpectedMsf)
     return ExpectedMsf.takeError();
-
-  auto &MsfResult = *ExpectedMsf;
-  if (auto EC = MsfResult.setBlockMapAddr(Super.BlockMapAddr))
-    return EC;
-  Msf = llvm::make_unique<MSFBuilder>(std::move(MsfResult));
-  Msf->setFreePageMap(Super.FreeBlockMapBlock);
-  Msf->setUnknown1(Super.Unknown1);
+  Msf = llvm::make_unique<MSFBuilder>(std::move(*ExpectedMsf));
   return Error::success();
 }
 
Index: lib/DebugInfo/MSF/MSFBuilder.cpp
===================================================================
--- lib/DebugInfo/MSF/MSFBuilder.cpp
+++ lib/DebugInfo/MSF/MSFBuilder.cpp
@@ -19,12 +19,14 @@
 const uint32_t kFreePageMap1Block = 2;
 const uint32_t kNumReservedPages = 3;
 
+const uint32_t kDefaultFreePageMap = kFreePageMap0Block;
 const uint32_t kDefaultBlockMapAddr = kNumReservedPages;
 }
 
 MSFBuilder::MSFBuilder(uint32_t BlockSize, uint32_t MinBlockCount, bool CanGrow,
                        BumpPtrAllocator &Allocator)
-    : Allocator(Allocator), IsGrowable(CanGrow), BlockSize(BlockSize),
+    : Allocator(Allocator), IsGrowable(CanGrow),
+      FreePageMap(kDefaultFreePageMap), BlockSize(BlockSize),
       MininumBlocks(MinBlockCount), BlockMapAddr(kDefaultBlockMapAddr),
       FreeBlocks(MinBlockCount, true) {
   FreeBlocks[kSuperBlockBlock] = false;
Index: include/llvm/DebugInfo/PDB/Raw/PDBFileBuilder.h
===================================================================
--- include/llvm/DebugInfo/PDB/Raw/PDBFileBuilder.h
+++ include/llvm/DebugInfo/PDB/Raw/PDBFileBuilder.h
@@ -36,7 +36,7 @@
   PDBFileBuilder(const PDBFileBuilder &) = delete;
   PDBFileBuilder &operator=(const PDBFileBuilder &) = delete;
 
-  Error initialize(const msf::SuperBlock &Super);
+  Error initialize(uint32_t BlockSize);
 
   msf::MSFBuilder &getMsfBuilder();
   InfoStreamBuilder &getInfoBuilder();
Index: include/llvm/DebugInfo/MSF/MSFBuilder.h
===================================================================
--- include/llvm/DebugInfo/MSF/MSFBuilder.h
+++ include/llvm/DebugInfo/MSF/MSFBuilder.h
@@ -128,7 +128,7 @@
 
   bool IsGrowable;
   uint32_t FreePageMap;
-  uint32_t Unknown1;
+  uint32_t Unknown1 = 0;
   uint32_t BlockSize;
   uint32_t MininumBlocks;
   uint32_t BlockMapAddr;


-------------- next part --------------
A non-text attachment was scrubbed...
Name: D25108.73132.patch
Type: text/x-patch
Size: 3929 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20160930/29cf28dd/attachment.bin>


More information about the llvm-commits mailing list