brintos

brintos / llvm-project-archived public Read only

0
0
Text · 1.2 KiB · 5dd636f Raw
42 lines · cpp
1//===- SymbolStream.cpp - PDB Symbol Stream Access ------------------------===//2//3// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.4// See https://llvm.org/LICENSE.txt for license information.5// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception6//7//===----------------------------------------------------------------------===//8 9#include "llvm/DebugInfo/PDB/Native/SymbolStream.h"10 11#include "llvm/DebugInfo/MSF/MappedBlockStream.h"12 13using namespace llvm;14using namespace llvm::msf;15using namespace llvm::support;16using namespace llvm::pdb;17 18SymbolStream::SymbolStream(std::unique_ptr<MappedBlockStream> Stream)19    : Stream(std::move(Stream)) {}20 21SymbolStream::~SymbolStream() = default;22 23Error SymbolStream::reload() {24  BinaryStreamReader Reader(*Stream);25 26  if (auto EC = Reader.readArray(SymbolRecords, Stream->getLength()))27    return EC;28 29  return Error::success();30}31 32iterator_range<codeview::CVSymbolArray::Iterator>33SymbolStream::getSymbols(bool *HadError) const {34  return llvm::make_range(SymbolRecords.begin(HadError), SymbolRecords.end());35}36 37Error SymbolStream::commit() { return Error::success(); }38 39codeview::CVSymbol SymbolStream::readRecord(uint32_t Offset) const {40  return *SymbolRecords.at(Offset);41}42