diff options
author | Rafael Espindola <rafael.espindola@gmail.com> | 2013-06-10 15:27:39 +0000 |
---|---|---|
committer | Rafael Espindola <rafael.espindola@gmail.com> | 2013-06-10 15:27:39 +0000 |
commit | f12745f7a7e68c05c89ebd515b9b4faedce37dd0 (patch) | |
tree | cddc0ab5c895c526e7a8113f5fb60ee5870fead6 /lib | |
parent | b972457783f6f992d8ee2fe392609fd4b0c5cf00 (diff) | |
download | external_llvm-f12745f7a7e68c05c89ebd515b9b4faedce37dd0.zip external_llvm-f12745f7a7e68c05c89ebd515b9b4faedce37dd0.tar.gz external_llvm-f12745f7a7e68c05c89ebd515b9b4faedce37dd0.tar.bz2 |
Pass a StringRef to sys::identifyFileType.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@183669 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib')
-rw-r--r-- | lib/Archive/Archive.cpp | 2 | ||||
-rw-r--r-- | lib/Archive/ArchiveReader.cpp | 2 | ||||
-rw-r--r-- | lib/ExecutionEngine/RuntimeDyld/RuntimeDyld.cpp | 4 | ||||
-rw-r--r-- | lib/Object/Binary.cpp | 3 | ||||
-rw-r--r-- | lib/Object/ObjectFile.cpp | 3 | ||||
-rw-r--r-- | lib/Support/Path.cpp | 12 |
6 files changed, 11 insertions, 15 deletions
diff --git a/lib/Archive/Archive.cpp b/lib/Archive/Archive.cpp index 1f36a00..2b92d0ff 100644 --- a/lib/Archive/Archive.cpp +++ b/lib/Archive/Archive.cpp @@ -129,7 +129,7 @@ bool ArchiveMember::replaceWith(const sys::Path& newFile, std::string* ErrMsg) { } // Determine what kind of file it is. - switch (sys::IdentifyFileType(signature,4)) { + switch (sys::identifyFileType(StringRef(signature, 4))) { case sys::Bitcode_FileType: flags |= BitcodeFlag; break; diff --git a/lib/Archive/ArchiveReader.cpp b/lib/Archive/ArchiveReader.cpp index 14713e6..6550599 100644 --- a/lib/Archive/ArchiveReader.cpp +++ b/lib/Archive/ArchiveReader.cpp @@ -205,7 +205,7 @@ Archive::parseMemberHeader(const char*& At, const char* End, std::string* error) } // Determine if this is a bitcode file - switch (sys::IdentifyFileType(At, 4)) { + switch (sys::identifyFileType(StringRef(At, 4))) { case sys::Bitcode_FileType: flags |= ArchiveMember::BitcodeFlag; break; diff --git a/lib/ExecutionEngine/RuntimeDyld/RuntimeDyld.cpp b/lib/ExecutionEngine/RuntimeDyld/RuntimeDyld.cpp index cee18c6..3995ba5 100644 --- a/lib/ExecutionEngine/RuntimeDyld/RuntimeDyld.cpp +++ b/lib/ExecutionEngine/RuntimeDyld/RuntimeDyld.cpp @@ -501,9 +501,7 @@ RuntimeDyld::~RuntimeDyld() { ObjectImage *RuntimeDyld::loadObject(ObjectBuffer *InputBuffer) { if (!Dyld) { - sys::LLVMFileType type = sys::IdentifyFileType( - InputBuffer->getBufferStart(), - static_cast<unsigned>(InputBuffer->getBufferSize())); + sys::LLVMFileType type = sys::identifyFileType(InputBuffer->getBuffer()); switch (type) { case sys::ELF_Relocatable_FileType: case sys::ELF_Executable_FileType: diff --git a/lib/Object/Binary.cpp b/lib/Object/Binary.cpp index 012e328..5d816e1 100644 --- a/lib/Object/Binary.cpp +++ b/lib/Object/Binary.cpp @@ -45,8 +45,7 @@ error_code object::createBinary(MemoryBuffer *Source, OwningPtr<MemoryBuffer> scopedSource(Source); if (!Source) return make_error_code(errc::invalid_argument); - sys::LLVMFileType type = sys::IdentifyFileType(Source->getBufferStart(), - static_cast<unsigned>(Source->getBufferSize())); + sys::LLVMFileType type = sys::identifyFileType(Source->getBuffer()); error_code ec; switch (type) { case sys::Archive_FileType: { diff --git a/lib/Object/ObjectFile.cpp b/lib/Object/ObjectFile.cpp index 5b3165d..c64af84 100644 --- a/lib/Object/ObjectFile.cpp +++ b/lib/Object/ObjectFile.cpp @@ -40,8 +40,7 @@ section_iterator ObjectFile::getRelocatedSection(DataRefImpl Sec) const { ObjectFile *ObjectFile::createObjectFile(MemoryBuffer *Object) { if (!Object || Object->getBufferSize() < 64) return 0; - sys::LLVMFileType type = sys::IdentifyFileType(Object->getBufferStart(), - static_cast<unsigned>(Object->getBufferSize())); + sys::LLVMFileType type = sys::identifyFileType(Object->getBuffer()); switch (type) { case sys::Unknown_FileType: return 0; diff --git a/lib/Support/Path.cpp b/lib/Support/Path.cpp index b6eeb14..bf1ae44 100644 --- a/lib/Support/Path.cpp +++ b/lib/Support/Path.cpp @@ -38,9 +38,9 @@ bool Path::operator<(const Path& that) const { } LLVMFileType -sys::identifyFileType(const char *Magic, unsigned Length) { - assert(Magic && "Invalid magic number string"); - assert(Length >=4 && "Invalid magic number length"); +sys::identifyFileType(StringRef Magic) { + unsigned Length = Magic.size(); + assert(Length >= 4 && "Invalid magic number length"); switch ((unsigned char)Magic[0]) { case 0xDE: // 0x0B17C0DE = BC wraper if (Magic[1] == (char)0xC0 && Magic[2] == (char)0x17 && @@ -53,7 +53,7 @@ sys::identifyFileType(const char *Magic, unsigned Length) { break; case '!': if (Length >= 8) - if (memcmp(Magic,"!<arch>\n",8) == 0) + if (memcmp(Magic.data(),"!<arch>\n",8) == 0) return Archive_FileType; break; @@ -136,9 +136,9 @@ sys::identifyFileType(const char *Magic, unsigned Length) { case 0x4d: // Possible MS-DOS stub on Windows PE file if (Magic[1] == 0x5a) { uint32_t off = - *reinterpret_cast<const ulittle32_t *>(Magic + 0x3c); + *reinterpret_cast<const ulittle32_t *>(Magic.data() + 0x3c); // PE/COFF file, either EXE or DLL. - if (off < Length && memcmp(Magic + off, "PE\0\0",4) == 0) + if (off < Length && memcmp(Magic.data() + off, "PE\0\0",4) == 0) return COFF_FileType; } break; |