mirror of
https://github.com/opencv/opencv.git
synced 2024-11-25 11:40:44 +08:00
Merge pull request #9441 from wzw-intel:delete_program
This commit is contained in:
commit
603fa03ac6
@ -248,6 +248,7 @@ public:
|
||||
const Device& device(size_t idx) const;
|
||||
Program getProg(const ProgramSource& prog,
|
||||
const String& buildopt, String& errmsg);
|
||||
void unloadProg(Program& prog);
|
||||
|
||||
static Context& getDefault(bool initialize = true);
|
||||
void* ptr() const;
|
||||
|
@ -1380,6 +1380,23 @@ struct Context::Impl
|
||||
return prog;
|
||||
}
|
||||
|
||||
void unloadProg(Program& prog)
|
||||
{
|
||||
cv::AutoLock lock(program_cache_mutex);
|
||||
for (CacheList::iterator i = cacheList.begin(); i != cacheList.end(); ++i)
|
||||
{
|
||||
phash_t::iterator it = phash.find(*i);
|
||||
if (it != phash.end())
|
||||
{
|
||||
if (it->second.ptr() == prog.ptr())
|
||||
{
|
||||
phash.erase(*i);
|
||||
cacheList.erase(i);
|
||||
return;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
IMPLEMENT_REFCOUNTABLE();
|
||||
|
||||
@ -1643,7 +1660,11 @@ Program Context::getProg(const ProgramSource& prog,
|
||||
return p ? p->getProg(prog, buildopts, errmsg) : Program();
|
||||
}
|
||||
|
||||
|
||||
void Context::unloadProg(Program& prog)
|
||||
{
|
||||
if (p)
|
||||
p->unloadProg(prog);
|
||||
}
|
||||
|
||||
#ifdef HAVE_OPENCL_SVM
|
||||
bool Context::useSVM() const
|
||||
|
Loading…
Reference in New Issue
Block a user