]> granicus.if.org Git - imagemagick/commitdiff
Only delete thread-specific data if a destructor is defined
authorCristy <urban-warrior@imagemagick.org>
Sat, 19 Dec 2015 00:38:55 +0000 (19:38 -0500)
committerCristy <urban-warrior@imagemagick.org>
Sat, 19 Dec 2015 00:38:55 +0000 (19:38 -0500)
MagickCore/thread.c

index 34eb5499f6126439ddef475ae8bd8eababd154b3..09c23ce4fd8670957f5b2ad40fc70fd9ce87a8aa 100644 (file)
@@ -118,7 +118,7 @@ MagickExport MagickBooleanType CreateMagickThreadKey(MagickThreadKey *key,
 %                                                                             %
 %                                                                             %
 %                                                                             %
-%   D e s t r o y M a g i c k T h r e a d K e y                               %
+%   D e l e t e M a g i c k T h r e a d K e y                                 %
 %                                                                             %
 %                                                                             %
 %                                                                             %
@@ -151,7 +151,8 @@ MagickExport MagickBooleanType DeleteMagickThreadKey(MagickThreadKey key)
 
     keys=(MagickThreadValue *) key;
     for (i=0; i < (ssize_t) keys->number_threads; i++)
-      if (keys->values[i] != (void *) NULL)
+      if ((keys->destructor != (void *) NULL) &&
+          (keys->values[i] != (void *) NULL))
         {
           keys->destructor(keys->values[i]);
           keys->values[i]=(void *) NULL;