19 using namespace llvm::msf;
20 using namespace llvm::support;
21 using namespace llvm::pdb;
23 NameHashTable::NameHashTable() : Signature(0), HashVersion(0), NameCount(0) {}
36 if (H->Signature != 0xEFFEEFFE)
38 "Invalid hash table signature");
39 if (H->HashVersion != 1 && H->HashVersion != 2)
41 "Unsupported hash version");
43 Signature = H->Signature;
44 HashVersion = H->HashVersion;
48 "Invalid hash table byte length"));
54 if (
auto EC = Stream.
readArray(IDs, *HashCount))
57 "Could not read bucket array"));
61 "Missing name count");
85 size_t Count = IDs.
size();
87 for (
size_t I = 0;
I < Count; ++
I) {
uint32_t hashStringV2(StringRef Str)
void setOffset(uint32_t Off)
Error readZeroString(StringRef &Dest)
StringRef getStringForID(uint32_t ID) const
uint32_t hashStringV1(StringRef Str)
Error readInteger(uint8_t &Dest)
Error readArray(ArrayRef< T > &Array, uint32_t NumElements)
void consumeError(Error Err)
Consume a Error without doing anything.
static ErrorSuccess success()
Create a success value.
uint32_t getIDForString(StringRef Str) const
Error load(msf::StreamReader &Stream)
Error joinErrors(Error E1, Error E2)
Concatenate errors.
Error readStreamRef(ReadableStreamRef &Ref)
uint32_t bytesRemaining() const
detail::packed_endian_specific_integral< uint32_t, little, unaligned > ulittle32_t
Lightweight error class with error context and mandatory checking.
std::string Hash(const Unit &U)
StringRef - Represent a constant reference to a string, i.e.
msf::FixedStreamArray< support::ulittle32_t > name_ids() const
Error readObject(const T *&Dest)