diff options
author | Dimitry Andric <dim@FreeBSD.org> | 2017-05-30 17:37:31 +0000 |
---|---|---|
committer | Dimitry Andric <dim@FreeBSD.org> | 2017-05-30 17:37:31 +0000 |
commit | ee2f195dd3e40f49698ca4dc2666ec09c770e80d (patch) | |
tree | 66fa9a69e5789356dfe844991e64bac9222f3a35 /lib/DebugInfo/CodeView/StringTable.cpp | |
parent | ab44ce3d598882e51a25eb82eb7ae6308de85ae6 (diff) |
Notes
Diffstat (limited to 'lib/DebugInfo/CodeView/StringTable.cpp')
-rw-r--r-- | lib/DebugInfo/CodeView/StringTable.cpp | 71 |
1 files changed, 0 insertions, 71 deletions
diff --git a/lib/DebugInfo/CodeView/StringTable.cpp b/lib/DebugInfo/CodeView/StringTable.cpp deleted file mode 100644 index 21f11204686b..000000000000 --- a/lib/DebugInfo/CodeView/StringTable.cpp +++ /dev/null @@ -1,71 +0,0 @@ -//===- StringTable.cpp - CodeView String Table Reader/Writer ----*- C++ -*-===// -// -// The LLVM Compiler Infrastructure -// -// This file is distributed under the University of Illinois Open Source -// License. See LICENSE.TXT for details. -// -//===----------------------------------------------------------------------===// - -#include "llvm/DebugInfo/CodeView/StringTable.h" - -#include "llvm/Support/BinaryStream.h" -#include "llvm/Support/BinaryStreamReader.h" -#include "llvm/Support/BinaryStreamWriter.h" - -using namespace llvm; -using namespace llvm::codeview; - -StringTableRef::StringTableRef() {} - -Error StringTableRef::initialize(BinaryStreamRef Contents) { - Stream = Contents; - return Error::success(); -} - -Expected<StringRef> StringTableRef::getString(uint32_t Offset) const { - BinaryStreamReader Reader(Stream); - Reader.setOffset(Offset); - StringRef Result; - if (auto EC = Reader.readCString(Result)) - return std::move(EC); - return Result; -} - -uint32_t StringTable::insert(StringRef S) { - auto P = Strings.insert({S, StringSize}); - - // If a given string didn't exist in the string table, we want to increment - // the string table size. - if (P.second) - StringSize += S.size() + 1; // +1 for '\0' - return P.first->second; -} - -uint32_t StringTable::calculateSerializedSize() const { return StringSize; } - -Error StringTable::commit(BinaryStreamWriter &Writer) const { - assert(Writer.bytesRemaining() == StringSize); - uint32_t MaxOffset = 1; - - for (auto &Pair : Strings) { - StringRef S = Pair.getKey(); - uint32_t Offset = Pair.getValue(); - Writer.setOffset(Offset); - if (auto EC = Writer.writeCString(S)) - return EC; - MaxOffset = std::max<uint32_t>(MaxOffset, Offset + S.size() + 1); - } - - Writer.setOffset(MaxOffset); - assert(Writer.bytesRemaining() == 0); - return Error::success(); -} - -uint32_t StringTable::size() const { return Strings.size(); } - -uint32_t StringTable::getStringId(StringRef S) const { - auto P = Strings.find(S); - assert(P != Strings.end()); - return P->second; -} |