Line data Source code
1 : //===- GlobalsStream.cpp - PDB Index of Symbols by Name ---- ----*- C++ -*-===//
2 : //
3 : // The LLVM Compiler Infrastructure
4 : //
5 : // This file is distributed under the University of Illinois Open Source
6 : // License. See LICENSE.TXT for details.
7 : //
8 : //===----------------------------------------------------------------------===//
9 :
10 : #include "GSI.h"
11 : #include "llvm/DebugInfo/MSF/StreamReader.h"
12 : #include "llvm/DebugInfo/PDB/Raw/GlobalsStream.h"
13 : #include "llvm/Support/Error.h"
14 : #include <algorithm>
15 :
16 : using namespace llvm;
17 : using namespace llvm::msf;
18 : using namespace llvm::pdb;
19 :
20 2 : GlobalsStream::GlobalsStream(std::unique_ptr<MappedBlockStream> Stream)
21 8 : : Stream(std::move(Stream)) {}
22 :
23 : GlobalsStream::~GlobalsStream() = default;
24 :
25 2 : Error GlobalsStream::reload() {
26 6 : StreamReader Reader(*Stream);
27 :
28 : const GSIHashHeader *HashHdr;
29 6 : if (auto EC = readGSIHashHeader(HashHdr, Reader))
30 0 : return EC;
31 :
32 6 : if (auto EC = readGSIHashRecords(HashRecords, HashHdr, Reader))
33 0 : return EC;
34 :
35 6 : if (auto EC = readGSIHashBuckets(HashBuckets, HashHdr, Reader))
36 0 : return EC;
37 4 : NumBuckets = HashBuckets.size();
38 :
39 6 : return Error::success();
40 : }
41 :
42 0 : Error GlobalsStream::commit() { return Error::success(); }
|