mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-07-25 13:24:46 +00:00
Pass a MemoryBufferRef when we can avoid taking ownership.
The attached patch simplifies a few interfaces that don't need to take ownership of a buffer. For example, both parseAssembly and parseBitcodeFile will parse the entire buffer before returning. There is no need to take ownership. Using a MemoryBufferRef makes it obvious in the type signature that there is no ownership transfer. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@216488 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
@@ -65,7 +65,8 @@ bool LTOModule::isBitcodeFile(const char *path) {
|
||||
|
||||
bool LTOModule::isBitcodeForTarget(MemoryBuffer *buffer,
|
||||
StringRef triplePrefix) {
|
||||
std::string Triple = getBitcodeTargetTriple(buffer, getGlobalContext());
|
||||
std::string Triple =
|
||||
getBitcodeTargetTriple(buffer->getMemBufferRef(), getGlobalContext());
|
||||
return StringRef(Triple).startswith(triplePrefix);
|
||||
}
|
||||
|
||||
@@ -112,14 +113,7 @@ LTOModule *LTOModule::createFromBuffer(const void *mem, size_t length,
|
||||
LTOModule *LTOModule::makeLTOModule(MemoryBufferRef Buffer,
|
||||
TargetOptions options,
|
||||
std::string &errMsg) {
|
||||
StringRef Data = Buffer.getBuffer();
|
||||
StringRef FileName = Buffer.getBufferIdentifier();
|
||||
std::unique_ptr<MemoryBuffer> MemBuf(
|
||||
makeBuffer(Data.begin(), Data.size(), FileName));
|
||||
if (!MemBuf)
|
||||
return nullptr;
|
||||
|
||||
ErrorOr<Module *> MOrErr = parseBitcodeFile(MemBuf.get(), getGlobalContext());
|
||||
ErrorOr<Module *> MOrErr = parseBitcodeFile(Buffer, getGlobalContext());
|
||||
if (std::error_code EC = MOrErr.getError()) {
|
||||
errMsg = EC.message();
|
||||
return nullptr;
|
||||
|
Reference in New Issue
Block a user