Pass the computed magic to createBinary and createObjectFile if available.

identify_magic is not free, so we should avoid calling it twice. The argument
also makes it cheap for createBinary to just forward to createObjectFile.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@199813 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Rafael Espindola
2014-01-22 16:04:52 +00:00
parent 929b0fb893
commit 2edc3a6b8d
5 changed files with 25 additions and 17 deletions

View File

@ -18,6 +18,7 @@
#include "llvm/Object/Binary.h"
#include "llvm/Support/DataTypes.h"
#include "llvm/Support/ErrorHandling.h"
#include "llvm/Support/FileSystem.h"
#include "llvm/Support/MemoryBuffer.h"
#include <cstring>
#include <vector>
@ -377,7 +378,9 @@ public:
/// return true.
/// @brief Create ObjectFile from path.
static ErrorOr<ObjectFile *> createObjectFile(StringRef ObjectPath);
static ErrorOr<ObjectFile *> createObjectFile(MemoryBuffer *Object);
static ErrorOr<ObjectFile *>
createObjectFile(MemoryBuffer *Object,
sys::fs::file_magic Type = sys::fs::file_magic::unknown);
static inline bool classof(const Binary *v) {
return v->isObject();