Merge pull request #10167 from alalek:ocl_fix_issue_contrib1467
authorAlexander Alekhin <alexander.a.alekhin@gmail.com>
Mon, 27 Nov 2017 11:05:07 +0000 (11:05 +0000)
committerAlexander Alekhin <alexander.a.alekhin@gmail.com>
Mon, 27 Nov 2017 11:05:07 +0000 (11:05 +0000)
1  2 
modules/core/src/ocl.cpp

@@@ -3308,11 -3235,9 +3311,12 @@@ struct Program::Imp
      bool compile(const Context& ctx, String& errmsg)
      {
  #if OPENCV_HAVE_FILESYSTEM_SUPPORT
+         CV_Assert(ctx.getImpl());
          OpenCLBinaryCacheConfigurator& config = OpenCLBinaryCacheConfigurator::getSingletonInstance();
 -        const std::string base_dir = config.prepareCacheDirectoryForContext(ctx.getImpl()->getPrefixString());
 +        const std::string base_dir = config.prepareCacheDirectoryForContext(
 +                ctx.getImpl()->getPrefixString(),
 +                ctx.getImpl()->getPrefixBase()
 +        );
          const std::string fname = base_dir.empty() ? std::string() :
                  std::string(base_dir + src.getImpl()->module_.c_str() + "--" + src.getImpl()->name_ + "_" + src.getImpl()->codeHash_ + ".bin");
          const cv::Ptr<utils::fs::FileLock> fileLock = config.cache_lock_; // can be empty