Create FileOutputBuffer lazily.
So that it is clear that FileOutputBuffer does not depend on PDB file builder. Eventually we will have to to get the file size info from the file builder to create a file with the exact size. NFC. llvm-svn: 282454
This commit is contained in:
parent
9e67b9922b
commit
3e9d6bbad6
|
@ -33,14 +33,6 @@ static ExitOnError ExitOnErr;
|
|||
const int BlockSize = 4096;
|
||||
|
||||
void coff::createPDB(StringRef Path) {
|
||||
// Create a file.
|
||||
size_t FileSize = BlockSize * 10;
|
||||
auto BufferOrErr = FileOutputBuffer::create(Path, FileSize);
|
||||
if (auto EC = BufferOrErr.getError())
|
||||
fatal(EC, "failed to open " + Path);
|
||||
auto FileByteStream =
|
||||
llvm::make_unique<msf::FileBufferByteStream>(std::move(*BufferOrErr));
|
||||
|
||||
// Create the superblock.
|
||||
msf::SuperBlock SB;
|
||||
memcpy(SB.MagicBytes, msf::Magic, sizeof(msf::Magic));
|
||||
|
@ -76,6 +68,12 @@ void coff::createPDB(StringRef Path) {
|
|||
auto &TpiBuilder = Builder.getTpiBuilder();
|
||||
TpiBuilder.setVersionHeader(pdb::PdbTpiV80);
|
||||
|
||||
// Write the root directory. Root stream is on page 2.
|
||||
// Write to a file.
|
||||
size_t FileSize = BlockSize * 10;
|
||||
auto BufferOrErr = FileOutputBuffer::create(Path, FileSize);
|
||||
if (auto EC = BufferOrErr.getError())
|
||||
fatal(EC, "failed to open " + Path);
|
||||
auto FileByteStream =
|
||||
llvm::make_unique<msf::FileBufferByteStream>(std::move(*BufferOrErr));
|
||||
ExitOnErr(Builder.commit(*FileByteStream));
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue