summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Object/COFFObjectFile.cpp
diff options
context:
space:
mode:
authorEric Beckmann <ecbeckmann@google.com>2017-05-08 02:47:42 +0000
committerEric Beckmann <ecbeckmann@google.com>2017-05-08 02:47:42 +0000
commitcd704cb6c4290643f232dc7e22b938705909dd6f (patch)
treeb8cd0a66575686431853009444902f12db064edb /llvm/lib/Object/COFFObjectFile.cpp
parent521a739f5ffdb006bd2f5f4952c54fdfe25fff2e (diff)
downloadbcm5719-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.cpp10
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());
}
OpenPOWER on IntegriCloud