From 40d8171e3e74f4786d89a8f1fb370653f81c7941 Mon Sep 17 00:00:00 2001 From: Andrew Kaylor Date: Fri, 28 Jun 2013 21:40:16 +0000 Subject: 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 --- .../ExecutionEngine/MCJIT/MCJITObjectCacheTest.cpp | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) (limited to 'unittests/ExecutionEngine') diff --git a/unittests/ExecutionEngine/MCJIT/MCJITObjectCacheTest.cpp b/unittests/ExecutionEngine/MCJIT/MCJITObjectCacheTest.cpp index 32fc292..2cc045b 100644 --- a/unittests/ExecutionEngine/MCJIT/MCJITObjectCacheTest.cpp +++ b/unittests/ExecutionEngine/MCJIT/MCJITObjectCacheTest.cpp @@ -45,6 +45,16 @@ public: ObjMap[ModuleID] = copyBuffer(Obj); } + virtual MemoryBuffer* getObject(const Module* M) { + const MemoryBuffer* BufferFound = getObjectInternal(M); + ModulesLookedUp.insert(M->getModuleIdentifier()); + if (!BufferFound) + return NULL; + // Our test cache wants to maintain ownership of its object buffers + // so we make a copy here for the execution engine. + return MemoryBuffer::getMemBufferCopy(BufferFound->getBuffer()); + } + // Test-harness-specific functions bool wereDuplicatesInserted() { return DuplicateInserted; } @@ -62,13 +72,6 @@ public: return it->second; } -protected: - virtual const MemoryBuffer* getObject(const Module* M) { - const MemoryBuffer* BufferFound = getObjectInternal(M); - ModulesLookedUp.insert(M->getModuleIdentifier()); - return BufferFound; - } - private: MemoryBuffer *copyBuffer(const MemoryBuffer *Buf) { // Create a local copy of the buffer. -- cgit v1.1