]> granicus.if.org Git - imagemagick/commitdiff
Fixed issue when cached kernel already exists.
authordirk <dirk@git.imagemagick.org>
Tue, 8 Nov 2016 20:39:09 +0000 (21:39 +0100)
committerdirk <dirk@git.imagemagick.org>
Tue, 8 Nov 2016 20:48:53 +0000 (21:48 +0100)
MagickCore/opencl.c

index 77ff286a5e3ec52c2c3f246b004a95ab9a2ab479..0cf2002f5f7fff435f978f6d8c10a007ea317a46 100644 (file)
@@ -1273,14 +1273,24 @@ static void CacheOpenCLKernel(MagickCLDevice device,char *filename,
         {
           for (i = 0; i < num_devices; i++)
           {
+            int
+              file;
+
             size_t
               program_size;
 
             program_size=*(program_sizes+i);
             if (program_size < 1)
               continue;
-            (void) BlobToFile(filename,binary_program[i],program_size,
-              exception);
+            file=open_utf8(filename,O_WRONLY | O_CREAT | O_BINARY,S_MODE);
+            if (file != -1)
+              {
+                write(file,binary_program[i],program_size);
+                file=close(file);
+              }
+            else
+              (void) ThrowMagickException(exception,GetMagickModule(),
+                DelegateWarning,"Saving kernel failed.","`%s'",filename);
             break;
           }
         }