diff options
author | Andrew Kaylor <andrew.kaylor@intel.com> | 2013-06-28 21:40:16 +0000 |
---|---|---|
committer | Andrew Kaylor <andrew.kaylor@intel.com> | 2013-06-28 21:40:16 +0000 |
commit | 40d8171e3e74f4786d89a8f1fb370653f81c7941 (patch) | |
tree | 55b7b1eb71aec541dbbb27eff4551e2e952fd061 /include | |
parent | 75f29256f3587b19740398adb9678b6ba376912f (diff) | |
download | external_llvm-40d8171e3e74f4786d89a8f1fb370653f81c7941.zip external_llvm-40d8171e3e74f4786d89a8f1fb370653f81c7941.tar.gz external_llvm-40d8171e3e74f4786d89a8f1fb370653f81c7941.tar.bz2 |
Revising the MCJIT ObjectCache interface to allow subclasses to avoid retaining references to returned objects
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@185221 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'include')
-rw-r--r-- | include/llvm/ExecutionEngine/ObjectCache.h | 20 |
1 files changed, 3 insertions, 17 deletions
diff --git a/include/llvm/ExecutionEngine/ObjectCache.h b/include/llvm/ExecutionEngine/ObjectCache.h index 0bee861..aa200fb 100644 --- a/include/llvm/ExecutionEngine/ObjectCache.h +++ b/include/llvm/ExecutionEngine/ObjectCache.h @@ -30,23 +30,9 @@ public: /// getObjectCopy - Returns a pointer to a newly allocated MemoryBuffer that /// contains the object which corresponds with Module M, or 0 if an object is - /// not available. The caller owns the MemoryBuffer returned by this function. - MemoryBuffer* getObjectCopy(const Module* M) { - const MemoryBuffer* Obj = getObject(M); - if (Obj) - return MemoryBuffer::getMemBufferCopy(Obj->getBuffer()); - else - return 0; - } - -protected: - /// getObject - Returns a pointer to a MemoryBuffer that contains an object - /// that corresponds with Module M, or 0 if an object is not available. - /// The pointer returned by this function is not suitable for loading because - /// the memory is read-only and owned by the ObjectCache. To retrieve an - /// owning pointer to a MemoryBuffer (which is suitable for calling - /// RuntimeDyld::loadObject() with) use getObjectCopy() instead. - virtual const MemoryBuffer* getObject(const Module* M) = 0; + /// not available. The caller owns both the MemoryBuffer returned by this + /// and the memory it references. + virtual MemoryBuffer* getObject(const Module* M) = 0; }; } |