diff options
author | Eric Beckmann <ecbeckmann@google.com> | 2017-05-08 02:47:42 +0000 |
---|---|---|
committer | Eric Beckmann <ecbeckmann@google.com> | 2017-05-08 02:47:42 +0000 |
commit | cd704cb6c4290643f232dc7e22b938705909dd6f (patch) | |
tree | b8cd0a66575686431853009444902f12db064edb /llvm/lib/Object/COFFObjectFile.cpp | |
parent | 521a739f5ffdb006bd2f5f4952c54fdfe25fff2e (diff) | |
download | bcm5719-llvm-cd704cb6c4290643f232dc7e22b938705909dd6f.tar.gz bcm5719-llvm-cd704cb6c4290643f232dc7e22b938705909dd6f.zip |
Hopefully one last commit to fix this patch, addresses string reference
issues.
llvm-svn: 302401
Diffstat (limited to 'llvm/lib/Object/COFFObjectFile.cpp')
-rw-r--r-- | llvm/lib/Object/COFFObjectFile.cpp | 10 |
1 files changed, 3 insertions, 7 deletions
diff --git a/llvm/lib/Object/COFFObjectFile.cpp b/llvm/lib/Object/COFFObjectFile.cpp index 39762e1d216..b1223e81be4 100644 --- a/llvm/lib/Object/COFFObjectFile.cpp +++ b/llvm/lib/Object/COFFObjectFile.cpp @@ -21,7 +21,6 @@ #include "llvm/Object/ObjectFile.h" #include "llvm/Support/BinaryStreamReader.h" #include "llvm/Support/COFF.h" -#include "llvm/Support/ConvertUTF.h" #include "llvm/Support/Endian.h" #include "llvm/Support/Error.h" #include "llvm/Support/ErrorHandling.h" @@ -1597,7 +1596,7 @@ std::error_code BaseRelocRef::getRVA(uint32_t &Result) const { if (auto EC = errorToErrorCode(X)) \ return EC; -ErrorOr<StringRef> ResourceSectionRef::getDirStringAtOffset(uint32_t Offset) { +ErrorOr<ArrayRef<UTF16>> ResourceSectionRef::getDirStringAtOffset(uint32_t Offset) { BinaryStreamReader Reader = BinaryStreamReader(BBS); Reader.setOffset(Offset); uint16_t Length; @@ -1606,13 +1605,10 @@ ErrorOr<StringRef> ResourceSectionRef::getDirStringAtOffset(uint32_t Offset) { // 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)); - std::string DirString; - if (!llvm::convertUTF16ToUTF8String(RawDirString, DirString)) - return object_error::parse_failed; - return DirString; + return RawDirString; } -ErrorOr<StringRef> +ErrorOr<ArrayRef<UTF16>> ResourceSectionRef::getEntryNameString(const coff_resource_dir_entry &Entry) { return getDirStringAtOffset(Entry.Identifier.getNameOffset()); } |