mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2024-12-15 04:30:12 +00:00
Simplify ownership with std::unique_ptr. NFC.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@215566 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
bd949eea85
commit
d6448b21bf
@ -29,11 +29,10 @@ public:
|
|||||||
/// notifyObjectCompiled - Provides a pointer to compiled code for Module M.
|
/// notifyObjectCompiled - Provides a pointer to compiled code for Module M.
|
||||||
virtual void notifyObjectCompiled(const Module *M, const MemoryBuffer *Obj) = 0;
|
virtual void notifyObjectCompiled(const Module *M, const MemoryBuffer *Obj) = 0;
|
||||||
|
|
||||||
/// getObjectCopy - Returns a pointer to a newly allocated MemoryBuffer that
|
/// Returns a pointer to a newly allocated MemoryBuffer that contains the
|
||||||
/// contains the object which corresponds with Module M, or 0 if an object is
|
/// object which corresponds with Module M, or 0 if an object is not
|
||||||
/// not available. The caller owns both the MemoryBuffer returned by this
|
/// available.
|
||||||
/// and the memory it references.
|
virtual std::unique_ptr<MemoryBuffer> getObject(const Module* M) = 0;
|
||||||
virtual MemoryBuffer* getObject(const Module* M) = 0;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -279,7 +279,7 @@ public:
|
|||||||
outfile.close();
|
outfile.close();
|
||||||
}
|
}
|
||||||
|
|
||||||
MemoryBuffer* getObject(const Module* M) override {
|
std::unique_ptr<MemoryBuffer> getObject(const Module* M) override {
|
||||||
const std::string ModuleID = M->getModuleIdentifier();
|
const std::string ModuleID = M->getModuleIdentifier();
|
||||||
std::string CacheName;
|
std::string CacheName;
|
||||||
if (!getCacheFilename(ModuleID, CacheName))
|
if (!getCacheFilename(ModuleID, CacheName))
|
||||||
@ -294,7 +294,8 @@ public:
|
|||||||
// because the file has probably just been mmapped. Instead we make
|
// because the file has probably just been mmapped. Instead we make
|
||||||
// a copy. The filed-based buffer will be released when it goes
|
// a copy. The filed-based buffer will be released when it goes
|
||||||
// out of scope.
|
// out of scope.
|
||||||
return MemoryBuffer::getMemBufferCopy(IRObjectBuffer.get()->getBuffer());
|
return std::unique_ptr<MemoryBuffer>(
|
||||||
|
MemoryBuffer::getMemBufferCopy(IRObjectBuffer.get()->getBuffer()));
|
||||||
}
|
}
|
||||||
|
|
||||||
private:
|
private:
|
||||||
|
@ -44,14 +44,15 @@ public:
|
|||||||
ObjMap[ModuleID] = copyBuffer(Obj);
|
ObjMap[ModuleID] = copyBuffer(Obj);
|
||||||
}
|
}
|
||||||
|
|
||||||
virtual MemoryBuffer* getObject(const Module* M) {
|
virtual std::unique_ptr<MemoryBuffer> getObject(const Module* M) {
|
||||||
const MemoryBuffer* BufferFound = getObjectInternal(M);
|
const MemoryBuffer* BufferFound = getObjectInternal(M);
|
||||||
ModulesLookedUp.insert(M->getModuleIdentifier());
|
ModulesLookedUp.insert(M->getModuleIdentifier());
|
||||||
if (!BufferFound)
|
if (!BufferFound)
|
||||||
return nullptr;
|
return nullptr;
|
||||||
// Our test cache wants to maintain ownership of its object buffers
|
// Our test cache wants to maintain ownership of its object buffers
|
||||||
// so we make a copy here for the execution engine.
|
// so we make a copy here for the execution engine.
|
||||||
return MemoryBuffer::getMemBufferCopy(BufferFound->getBuffer());
|
return std::unique_ptr<MemoryBuffer>(
|
||||||
|
MemoryBuffer::getMemBufferCopy(BufferFound->getBuffer()));
|
||||||
}
|
}
|
||||||
|
|
||||||
// Test-harness-specific functions
|
// Test-harness-specific functions
|
||||||
|
Loading…
Reference in New Issue
Block a user