diff options
author | Eric Beckmann <ecbeckmann@google.com> | 2017-05-08 02:25:03 +0000 |
---|---|---|
committer | Eric Beckmann <ecbeckmann@google.com> | 2017-05-08 02:25:03 +0000 |
commit | 03de7c1501a8ae382778eb1ec69a2b954a033c75 (patch) | |
tree | 282b9e0b36219fb1ef5b949701a1655731d85243 /llvm/lib/Object/COFFObjectFile.cpp | |
parent | c2d3f4c60428a41c2e3ab5f510b2c503c846d301 (diff) | |
download | bcm5719-llvm-03de7c1501a8ae382778eb1ec69a2b954a033c75.tar.gz bcm5719-llvm-03de7c1501a8ae382778eb1ec69a2b954a033c75.zip |
Revert "Hopefully one last commit to fix this patch, addresses string reference"
Summary:
This reverts commit 56beec1b1cfc6d263e5eddb7efff06117c0724d2.
Revert "Quick fix to D32609, it seems .o files are not transferred in all cases."
This reverts commit 7652eecd29cfdeeab7f76f687586607a99ff4e36.
Revert "Update llvm-readobj -coff-resources to display tree structure."
This reverts commit 422b62c4d302cfc92401418c2acd165056081ed7.
Reviewers: zturner
Subscribers: llvm-commits
Differential Revision: https://reviews.llvm.org/D32958
llvm-svn: 302397
Diffstat (limited to 'llvm/lib/Object/COFFObjectFile.cpp')
-rw-r--r-- | llvm/lib/Object/COFFObjectFile.cpp | 45 |
1 files changed, 2 insertions, 43 deletions
diff --git a/llvm/lib/Object/COFFObjectFile.cpp b/llvm/lib/Object/COFFObjectFile.cpp index b1223e81be4..1866aba9b21 100644 --- a/llvm/lib/Object/COFFObjectFile.cpp +++ b/llvm/lib/Object/COFFObjectFile.cpp @@ -19,7 +19,6 @@ #include "llvm/Object/COFF.h" #include "llvm/Object/Error.h" #include "llvm/Object/ObjectFile.h" -#include "llvm/Support/BinaryStreamReader.h" #include "llvm/Support/COFF.h" #include "llvm/Support/Endian.h" #include "llvm/Support/Error.h" @@ -160,7 +159,8 @@ void COFFObjectFile::moveSymbolNext(DataRefImpl &Ref) const { Expected<StringRef> COFFObjectFile::getSymbolName(DataRefImpl Ref) const { COFFSymbolRef Symb = getCOFFSymbol(Ref); StringRef Result; - if (std::error_code EC = getSymbolName(Symb, Result)) + std::error_code EC = getSymbolName(Symb, Result); + if (EC) return errorCodeToError(EC); return Result; } @@ -1591,44 +1591,3 @@ std::error_code BaseRelocRef::getRVA(uint32_t &Result) const { Result = Header->PageRVA + Entry[Index].getOffset(); return std::error_code(); } - -#define RETURN_IF_ERROR(X) \ - if (auto EC = errorToErrorCode(X)) \ - return EC; - -ErrorOr<ArrayRef<UTF16>> ResourceSectionRef::getDirStringAtOffset(uint32_t Offset) { - BinaryStreamReader Reader = BinaryStreamReader(BBS); - Reader.setOffset(Offset); - uint16_t Length; - RETURN_IF_ERROR(Reader.readInteger(Length)); - ArrayRef<UTF16> RawDirString; - // Strings are stored as 2-byte aligned unicode characters but readFixedString - // assumes byte string, so we double length. - RETURN_IF_ERROR(Reader.readArray(RawDirString, Length)); - return RawDirString; -} - -ErrorOr<ArrayRef<UTF16>> -ResourceSectionRef::getEntryNameString(const coff_resource_dir_entry &Entry) { - return getDirStringAtOffset(Entry.Identifier.getNameOffset()); -} - -ErrorOr<const coff_resource_dir_table &> -ResourceSectionRef::getTableAtOffset(uint32_t Offset) { - const coff_resource_dir_table *Table = nullptr; - - BinaryStreamReader Reader(BBS); - Reader.setOffset(Offset); - RETURN_IF_ERROR(Reader.readObject(Table)); - assert(Table != nullptr); - return *Table; -} - -ErrorOr<const coff_resource_dir_table &> -ResourceSectionRef::getEntrySubDir(const coff_resource_dir_entry &Entry) { - return getTableAtOffset(Entry.Offset.value()); -} - -ErrorOr<const coff_resource_dir_table &> ResourceSectionRef::getBaseTable() { - return getTableAtOffset(0); -} |