summaryrefslogtreecommitdiffstats
path: root/llvm/lib
diff options
context:
space:
mode:
authorZachary Turner <zturner@google.com>2016-06-07 20:38:37 +0000
committerZachary Turner <zturner@google.com>2016-06-07 20:38:37 +0000
commite6fee88ce14865f5863ca711504936db4b011d34 (patch)
treef72e51178ef170144f1873f8af5ceb2c21713460 /llvm/lib
parent0ad60a90c799051ec7dafce58f5a92e584d791df (diff)
downloadbcm5719-llvm-e6fee88ce14865f5863ca711504936db4b011d34.tar.gz
bcm5719-llvm-e6fee88ce14865f5863ca711504936db4b011d34.zip
[pdb] Convert StringRefs to ArrayRef<uint8_t>s.
llvm-svn: 272058
Diffstat (limited to 'llvm/lib')
-rw-r--r--llvm/lib/DebugInfo/PDB/Raw/MappedBlockStream.cpp11
-rw-r--r--llvm/lib/DebugInfo/PDB/Raw/PDBFile.cpp9
2 files changed, 11 insertions, 9 deletions
diff --git a/llvm/lib/DebugInfo/PDB/Raw/MappedBlockStream.cpp b/llvm/lib/DebugInfo/PDB/Raw/MappedBlockStream.cpp
index 03462b38863..3428ff83471 100644
--- a/llvm/lib/DebugInfo/PDB/Raw/MappedBlockStream.cpp
+++ b/llvm/lib/DebugInfo/PDB/Raw/MappedBlockStream.cpp
@@ -78,10 +78,9 @@ bool MappedBlockStream::tryReadContiguously(uint32_t Offset, uint32_t Size,
}
uint32_t FirstBlockAddr = BlockList[BlockNum];
- StringRef Str = Pdb.getBlockData(FirstBlockAddr, Pdb.getBlockSize());
- Str = Str.drop_front(OffsetInBlock);
- Buffer =
- ArrayRef<uint8_t>(reinterpret_cast<const uint8_t *>(Str.data()), Size);
+ auto Data = Pdb.getBlockData(FirstBlockAddr, Pdb.getBlockSize());
+ Data = Data.drop_front(OffsetInBlock);
+ Buffer = ArrayRef<uint8_t>(Data.data(), Size);
return true;
}
@@ -103,9 +102,9 @@ Error MappedBlockStream::readBytes(uint32_t Offset,
while (BytesLeft > 0) {
uint32_t StreamBlockAddr = BlockList[BlockNum];
- StringRef Data = Pdb.getBlockData(StreamBlockAddr, Pdb.getBlockSize());
+ auto Data = Pdb.getBlockData(StreamBlockAddr, Pdb.getBlockSize());
- const char *ChunkStart = Data.data() + OffsetInBlock;
+ const uint8_t *ChunkStart = Data.data() + OffsetInBlock;
uint32_t BytesInChunk =
std::min(BytesLeft, Pdb.getBlockSize() - OffsetInBlock);
::memcpy(WriteBuffer + BytesWritten, ChunkStart, BytesInChunk);
diff --git a/llvm/lib/DebugInfo/PDB/Raw/PDBFile.cpp b/llvm/lib/DebugInfo/PDB/Raw/PDBFile.cpp
index 9ef0a492e87..22094773624 100644
--- a/llvm/lib/DebugInfo/PDB/Raw/PDBFile.cpp
+++ b/llvm/lib/DebugInfo/PDB/Raw/PDBFile.cpp
@@ -138,11 +138,14 @@ PDBFile::getStreamBlockList(uint32_t StreamIndex) const {
return Array;
}
-StringRef PDBFile::getBlockData(uint32_t BlockIndex, uint32_t NumBytes) const {
+ArrayRef<uint8_t> PDBFile::getBlockData(uint32_t BlockIndex,
+ uint32_t NumBytes) const {
uint64_t StreamBlockOffset = blockToOffset(BlockIndex, getBlockSize());
- return StringRef(Context->Buffer->getBufferStart() + StreamBlockOffset,
- NumBytes);
+ return ArrayRef<uint8_t>(
+ reinterpret_cast<const uint8_t *>(Context->Buffer->getBufferStart()) +
+ StreamBlockOffset,
+ NumBytes);
}
Error PDBFile::parseFileHeaders() {
OpenPOWER on IntegriCloud