]> granicus.if.org Git - imagemagick/commitdiff
(no commit message)
authorcristy <urban-warrior@git.imagemagick.org>
Sun, 16 Feb 2014 15:10:39 +0000 (15:10 +0000)
committercristy <urban-warrior@git.imagemagick.org>
Sun, 16 Feb 2014 15:10:39 +0000 (15:10 +0000)
25 files changed:
MagickCore/annotate.c
MagickCore/cache.c
MagickCore/coder.c
MagickCore/color.c
MagickCore/configure.c
MagickCore/constitute.c
MagickCore/delegate.c
MagickCore/exception.c
MagickCore/locale.c
MagickCore/log.c
MagickCore/magic.c
MagickCore/magick.c
MagickCore/memory.c
MagickCore/mime.c
MagickCore/module.c
MagickCore/opencl.c
MagickCore/policy.c
MagickCore/random.c
MagickCore/registry.c
MagickCore/resource.c
MagickCore/semaphore.c
MagickCore/semaphore.h
MagickCore/type.c
MagickWand/wand.c
coders/tiff.c

index d945ccade2a476afde3e6810eee5dee4cab62190..0a985f2edb3a5afa1689b6ccb30ef762caa70e04 100644 (file)
@@ -170,7 +170,7 @@ MagickPrivate MagickBooleanType AnnotateComponentGenesis(void)
 MagickPrivate void AnnotateComponentTerminus(void)
 {
   if (annotate_semaphore == (SemaphoreInfo *) NULL)
-    annotate_semaphore=AcquireSemaphoreInfo();
+    ActivateSemaphoreInfo(&annotate_semaphore);
   RelinquishSemaphoreInfo(&annotate_semaphore);
 }
 \f
@@ -1904,7 +1904,7 @@ static MagickBooleanType RenderX11(Image *image,const DrawInfo *draw_info,
     status;
 
   if (annotate_semaphore == (SemaphoreInfo *) NULL)
-    annotate_semaphore=AcquireSemaphoreInfo();
+    ActivateSemaphoreInfo(&annotate_semaphore);
   LockSemaphoreInfo(annotate_semaphore);
   status=XRenderImage(image,draw_info,offset,metrics,exception);
   UnlockSemaphoreInfo(annotate_semaphore);
index 290f054f8dc36f2c309a3c3cc95e9a71d2ad538a..4e0a0c6a65c3ddfba9f9299d9f0490b1e65b0a64 100644 (file)
@@ -349,7 +349,7 @@ MagickPrivate MagickBooleanType CacheComponentGenesis(void)
 MagickPrivate void CacheComponentTerminus(void)
 {
   if (cache_semaphore == (SemaphoreInfo *) NULL)
-    cache_semaphore=AcquireSemaphoreInfo();
+    ActivateSemaphoreInfo(&cache_semaphore);
   LockSemaphoreInfo(cache_semaphore);
   instantiate_cache=MagickFalse;
   UnlockSemaphoreInfo(cache_semaphore);
index 2095db0d86749b87449341d933e3f672f3e4fdfb..1ca26c391975388938665189c730a3d0090efb6d 100644 (file)
@@ -290,7 +290,7 @@ MagickPrivate MagickBooleanType CoderComponentGenesis(void)
 MagickPrivate void CoderComponentTerminus(void)
 {
   if (coder_semaphore == (SemaphoreInfo *) NULL)
-    coder_semaphore=AcquireSemaphoreInfo();
+    ActivateSemaphoreInfo(&coder_semaphore);
   LockSemaphoreInfo(coder_semaphore);
   if (coder_list != (SplayTreeInfo *) NULL)
     coder_list=DestroySplayTree(coder_list);
@@ -542,7 +542,7 @@ static MagickBooleanType InitializeCoderList(ExceptionInfo *exception)
       (instantiate_coder == MagickFalse))
     {
       if (coder_semaphore == (SemaphoreInfo *) NULL)
-        coder_semaphore=AcquireSemaphoreInfo();
+        ActivateSemaphoreInfo(&coder_semaphore);
       LockSemaphoreInfo(coder_semaphore);
       if ((coder_list == (SplayTreeInfo *) NULL) &&
           (instantiate_coder == MagickFalse))
index 08fbed79948bef631dc2610cc1c05ed880ff99ee..359b6297f389fd094ebccf28bd269112dac6cab8 100644 (file)
@@ -863,7 +863,7 @@ static void *DestroyColorElement(void *color_info)
 MagickPrivate void ColorComponentTerminus(void)
 {
   if (color_semaphore == (SemaphoreInfo *) NULL)
-    color_semaphore=AcquireSemaphoreInfo();
+    ActivateSemaphoreInfo(&color_semaphore);
   LockSemaphoreInfo(color_semaphore);
   if (color_list != (LinkedListInfo *) NULL)
     color_list=DestroyLinkedList(color_list,DestroyColorElement);
@@ -1519,7 +1519,7 @@ static MagickBooleanType InitializeColorList(ExceptionInfo *exception)
       IfMagickFalse(instantiate_color))
     {
       if (color_semaphore == (SemaphoreInfo *) NULL)
-        color_semaphore=AcquireSemaphoreInfo();
+        ActivateSemaphoreInfo(&color_semaphore);
       LockSemaphoreInfo(color_semaphore);
       if ((color_list == (LinkedListInfo *) NULL) &&
           IfMagickFalse(instantiate_color))
index 028ea79729140534441fa78a0676ec72e9fddcc5..43ed3169b0e3e84064ef9b5e9aa598554cd83f6d 100644 (file)
@@ -187,7 +187,7 @@ static void *DestroyConfigureElement(void *configure_info)
 MagickPrivate void ConfigureComponentTerminus(void)
 {
   if (configure_semaphore == (SemaphoreInfo *) NULL)
-    configure_semaphore=AcquireSemaphoreInfo();
+    ActivateSemaphoreInfo(&configure_semaphore);
   LockSemaphoreInfo(configure_semaphore);
   if (configure_list != (LinkedListInfo *) NULL)
     configure_list=DestroyLinkedList(configure_list,DestroyConfigureElement);
@@ -906,7 +906,7 @@ static MagickBooleanType InitializeConfigureList(ExceptionInfo *exception)
       (instantiate_configure == MagickFalse))
     {
       if (configure_semaphore == (SemaphoreInfo *) NULL)
-        configure_semaphore=AcquireSemaphoreInfo();
+        ActivateSemaphoreInfo(&configure_semaphore);
       LockSemaphoreInfo(configure_semaphore);
       if ((configure_list == (LinkedListInfo *) NULL) &&
           (instantiate_configure == MagickFalse))
index 28a2315565db8d1f9e139212250b157d58550a6b..ca465349697f8f3ea73fc03c74341714735c8ff6 100644 (file)
@@ -128,7 +128,7 @@ MagickPrivate MagickBooleanType ConstituteComponentGenesis(void)
 MagickPrivate void ConstituteComponentTerminus(void)
 {
   if (constitute_semaphore == (SemaphoreInfo *) NULL)
-    constitute_semaphore=AcquireSemaphoreInfo();
+    ActivateSemaphoreInfo(&constitute_semaphore);
   RelinquishSemaphoreInfo(&constitute_semaphore);
 }
 \f
@@ -528,7 +528,7 @@ MagickExport Image *ReadImage(const ImageInfo *image_info,
     }
   image=NewImageList();
   if (constitute_semaphore == (SemaphoreInfo *) NULL)
-    constitute_semaphore=AcquireSemaphoreInfo();
+    ActivateSemaphoreInfo(&constitute_semaphore);
   if ((magick_info == (const MagickInfo *) NULL) ||
       (GetImageDecoder(magick_info) == (DecodeImageHandler *) NULL))
     {
@@ -1142,7 +1142,7 @@ MagickExport MagickBooleanType WriteImage(const ImageInfo *image_info,
         }
     }
   if (constitute_semaphore == (SemaphoreInfo *) NULL)
-    constitute_semaphore=AcquireSemaphoreInfo();
+    ActivateSemaphoreInfo(&constitute_semaphore);
   if ((magick_info != (const MagickInfo *) NULL) &&
       (GetImageEncoder(magick_info) != (EncodeImageHandler *) NULL))
     {
index a7d7a63ec43261c65e79ca7f3637d2e7178f3303..2ae07e82ac5212ea4a786905ec48497fc0f070a8 100644 (file)
@@ -207,7 +207,7 @@ static void *DestroyDelegate(void *delegate_info)
 MagickPrivate void DelegateComponentTerminus(void)
 {
   if (delegate_semaphore == (SemaphoreInfo *) NULL)
-    delegate_semaphore=AcquireSemaphoreInfo();
+    ActivateSemaphoreInfo(&delegate_semaphore);
   LockSemaphoreInfo(delegate_semaphore);
   if (delegate_list != (LinkedListInfo *) NULL)
     delegate_list=DestroyLinkedList(delegate_list,DestroyDelegate);
@@ -713,7 +713,7 @@ static MagickBooleanType InitializeDelegateList(ExceptionInfo *exception)
       IfMagickFalse(instantiate_delegate))
     {
       if (delegate_semaphore == (SemaphoreInfo *) NULL)
-        delegate_semaphore=AcquireSemaphoreInfo();
+        ActivateSemaphoreInfo(&delegate_semaphore);
       LockSemaphoreInfo(delegate_semaphore);
       if ((delegate_list == (LinkedListInfo *) NULL) &&
           IfMagickFalse(instantiate_delegate))
index f08afba1697714e9cf7e898756842bc2377c8ade..3929ba6e3800d26fc7d0affba10776e712a50cc7 100644 (file)
@@ -414,7 +414,7 @@ MagickExport ExceptionInfo *DestroyExceptionInfo(ExceptionInfo *exception)
   assert(exception != (ExceptionInfo *) NULL);
   assert(exception->signature == MagickSignature);
   if (exception->semaphore == (SemaphoreInfo *) NULL)
-    exception->semaphore=AcquireSemaphoreInfo();
+    ActivateSemaphoreInfo(&exception->semaphore);
   LockSemaphoreInfo(exception->semaphore);
   exception->severity=UndefinedException;
   if (exception->exceptions != (void *) NULL)
index 7033e1c8165fcd170095d0a4493077b0ac99ba1d..a5bf7d5380aef1738543a82ae6d07e7360b5df02 100644 (file)
@@ -817,7 +817,7 @@ static MagickBooleanType InitializeLocaleList(ExceptionInfo *exception)
       (instantiate_locale == MagickFalse))
     {
       if (locale_semaphore == (SemaphoreInfo *) NULL)
-        locale_semaphore=AcquireSemaphoreInfo();
+        ActivateSemaphoreInfo(&locale_semaphore);
       LockSemaphoreInfo(locale_semaphore);
       if ((locale_list == (SplayTreeInfo *) NULL) &&
           (instantiate_locale == MagickFalse))
@@ -1417,7 +1417,7 @@ MagickPrivate MagickBooleanType LocaleComponentGenesis(void)
 MagickPrivate void LocaleComponentTerminus(void)
 {
   if (locale_semaphore == (SemaphoreInfo *) NULL)
-    locale_semaphore=AcquireSemaphoreInfo();
+    ActivateSemaphoreInfo(&locale_semaphore);
   LockSemaphoreInfo(locale_semaphore);
   if (locale_list != (SplayTreeInfo *) NULL)
     locale_list=DestroySplayTree(locale_list);
index 60186eb342c04ec9c7d62f173436506ecc8afd13..b00060766184e6e27ffc030225dfd52c19321f85 100644 (file)
@@ -537,7 +537,7 @@ static MagickBooleanType InitializeLogList(ExceptionInfo *exception)
   if ((log_list == (LinkedListInfo *) NULL) && (instantiate_log == MagickFalse))
     {
       if (log_semaphore == (SemaphoreInfo *) NULL)
-        log_semaphore=AcquireSemaphoreInfo();
+        ActivateSemaphoreInfo(&log_semaphore);
       LockSemaphoreInfo(log_semaphore);
       if ((log_list == (LinkedListInfo *) NULL) &&
           (instantiate_log == MagickFalse))
@@ -759,7 +759,7 @@ static void *DestroyLogElement(void *log_info)
 MagickPrivate void LogComponentTerminus(void)
 {
   if (log_semaphore == (SemaphoreInfo *) NULL)
-    log_semaphore=AcquireSemaphoreInfo();
+    ActivateSemaphoreInfo(&log_semaphore);
   LockSemaphoreInfo(log_semaphore);
   if (log_list != (LinkedListInfo *) NULL)
     log_list=DestroyLinkedList(log_list,DestroyLogElement);
index 0ec0b373026752ac38f6d44f8461d7631680e098..f44684adb9345643b2c35e1a32c494776a33a1bc 100644 (file)
@@ -533,7 +533,7 @@ static MagickBooleanType InitializeMagicList(ExceptionInfo *exception)
       (instantiate_magic == MagickFalse))
     {
       if (magic_semaphore == (SemaphoreInfo *) NULL)
-        magic_semaphore=AcquireSemaphoreInfo();
+        ActivateSemaphoreInfo(&magic_semaphore);
       LockSemaphoreInfo(magic_semaphore);
       if ((magic_list == (LinkedListInfo *) NULL) &&
           (instantiate_magic == MagickFalse))
@@ -1071,7 +1071,7 @@ static void *DestroyMagicElement(void *magic_info)
 MagickPrivate void MagicComponentTerminus(void)
 {
   if (magic_semaphore == (SemaphoreInfo *) NULL)
-    magic_semaphore=AcquireSemaphoreInfo();
+    ActivateSemaphoreInfo(&magic_semaphore);
   LockSemaphoreInfo(magic_semaphore);
   if (magic_list != (LinkedListInfo *) NULL)
     magic_list=DestroyLinkedList(magic_list,DestroyMagicElement);
index 5dba4c69788224293ea564f86e1fa37d21e24f7b..d2f0ef4bea7a23b82f817c5489af4ca8df5cce00 100644 (file)
@@ -844,7 +844,7 @@ static MagickBooleanType InitializeMagickList(ExceptionInfo *exception)
       (instantiate_magick == MagickFalse))
     {
       if (magick_semaphore == (SemaphoreInfo *) NULL)
-        magick_semaphore=AcquireSemaphoreInfo();
+        ActivateSemaphoreInfo(&magick_semaphore);
       LockSemaphoreInfo(magick_semaphore);
       if ((magick_list == (SplayTreeInfo *) NULL) &&
           (instantiate_magick == MagickFalse))
@@ -1100,7 +1100,7 @@ MagickPrivate MagickBooleanType MagickComponentGenesis(void)
 MagickPrivate void MagickComponentTerminus(void)
 {
   if (magick_semaphore == (SemaphoreInfo *) NULL)
-    magick_semaphore=AcquireSemaphoreInfo();
+    ActivateSemaphoreInfo(&magick_semaphore);
   LockSemaphoreInfo(magick_semaphore);
   if (magick_list != (SplayTreeInfo *) NULL)
     magick_list=DestroySplayTree(magick_list);
index 119f5f6476c8c6e8df40c47e4081f41a909ffb08..1edb4ad96328af6cfe9e3faf2505183064983c63 100644 (file)
@@ -463,7 +463,7 @@ MagickExport void *AcquireMagickMemory(const size_t size)
   memory=memory_methods.acquire_memory_handler(size == 0 ? 1UL : size);
 #else
   if (memory_semaphore == (SemaphoreInfo *) NULL)
-    memory_semaphore=AcquireSemaphoreInfo();
+    ActivateSemaphoreInfo(&memory_semaphore);
   if (free_segments == (DataSegmentInfo *) NULL)
     {
       LockSemaphoreInfo(memory_semaphore);
@@ -724,7 +724,7 @@ MagickExport void DestroyMagickMemory(void)
     i;
 
   if (memory_semaphore == (SemaphoreInfo *) NULL)
-    memory_semaphore=AcquireSemaphoreInfo();
+    ActivateSemaphoreInfo(&memory_semaphore);
   LockSemaphoreInfo(memory_semaphore);
   UnlockSemaphoreInfo(memory_semaphore);
   for (i=0; i < (ssize_t) memory_pool.number_segments; i++)
index fed83d9963923dd0355d6768716bf61d92357bf1..f7dcb23d1126ebfccd99a8086f948be2931e2f40 100644 (file)
@@ -608,7 +608,7 @@ static MagickBooleanType InitializeMimeList(ExceptionInfo *exception)
       (instantiate_mime == MagickFalse))
     {
       if (mime_semaphore == (SemaphoreInfo *) NULL)
-        mime_semaphore=AcquireSemaphoreInfo();
+        ActivateSemaphoreInfo(&mime_semaphore);
       LockSemaphoreInfo(mime_semaphore);
       if ((mime_list == (LinkedListInfo *) NULL) &&
           (instantiate_mime == MagickFalse))
@@ -1102,7 +1102,7 @@ static void *DestroyMimeElement(void *mime_info)
 MagickPrivate void MimeComponentTerminus(void)
 {
   if (mime_semaphore == (SemaphoreInfo *) NULL)
-    mime_semaphore=AcquireSemaphoreInfo();
+    ActivateSemaphoreInfo(&mime_semaphore);
   LockSemaphoreInfo(mime_semaphore);
   if (mime_list != (LinkedListInfo *) NULL)
     mime_list=DestroyLinkedList(mime_list,DestroyMimeElement);
index 9a182120e3ffba54ef1b70cd9e3b0db95948604b..8d5c61f5e61412199e075ee85b9d64b48138a6f0 100644 (file)
@@ -869,7 +869,7 @@ static MagickBooleanType InitializeModuleList(
       (instantiate_module == MagickFalse))
     {
       if (module_semaphore == (SemaphoreInfo *) NULL)
-        module_semaphore=AcquireSemaphoreInfo();
+        ActivateSemaphoreInfo(&module_semaphore);
       LockSemaphoreInfo(module_semaphore);
       if ((module_list == (SplayTreeInfo *) NULL) &&
           (instantiate_module == MagickFalse))
@@ -1192,7 +1192,7 @@ MagickPrivate MagickBooleanType ModuleComponentGenesis(void)
 MagickPrivate void ModuleComponentTerminus(void)
 {
   if (module_semaphore == (SemaphoreInfo *) NULL)
-    module_semaphore=AcquireSemaphoreInfo();
+    ActivateSemaphoreInfo(&module_semaphore);
   DestroyModuleList();
   RelinquishSemaphoreInfo(&module_semaphore);
 }
index c9614d090a7ddf8eb2172dfe3e4346a6051f70d0..31a05c33ea8cd3c13f34f8fb76cea4beb47d6dd6 100644 (file)
@@ -126,7 +126,7 @@ MagickExport MagickCLEnv AcquireMagickOpenCLEnv()
   if (clEnv != NULL)
   {
     memset(clEnv, 0, sizeof(struct _MagickCLEnv));
-    clEnv->lock=AcquireSemaphoreInfo();
+    ActivateSemaphoreInfo(&clEnv->lock);
   }
   return clEnv;
 }
@@ -203,7 +203,7 @@ MagickExport MagickCLEnv GetDefaultOpenCLEnv()
   {
     if (defaultCLEnvLock == NULL)
     {
-      defaultCLEnvLock=AcquireSemaphoreInfo();
+      ActivateSemaphoreInfo(&defaultCLEnvLock);
     }
     LockSemaphoreInfo(defaultCLEnvLock);
     defaultCLEnv = AcquireMagickOpenCLEnv();
@@ -215,7 +215,7 @@ MagickExport MagickCLEnv GetDefaultOpenCLEnv()
 static void LockDefaultOpenCLEnv() {
   if (defaultCLEnvLock == NULL)
   {
-    defaultCLEnvLock=AcquireSemaphoreInfo();
+    ActivateSemaphoreInfo(&defaultCLEnvLock);
   }
   LockSemaphoreInfo(defaultCLEnvLock);
 }
@@ -223,7 +223,7 @@ static void LockDefaultOpenCLEnv() {
 static void UnlockDefaultOpenCLEnv() {
   if (defaultCLEnvLock == NULL)
   {
-    defaultCLEnvLock=AcquireSemaphoreInfo();
+    ActivateSemaphoreInfo(&defaultCLEnvLock);
   }
   else
     UnlockSemaphoreInfo(defaultCLEnvLock);
@@ -2543,7 +2543,7 @@ const char* GetOpenCLCachedFilesDirectory() {
   if (openclCachedFilesDirectory == NULL) {
     if (openclCachedFilesDirectoryLock == NULL)
     {
-      openclCachedFilesDirectoryLock=AcquireSemaphoreInfo();
+      ActivateSemaphoreInfo(&openclCachedFilesDirectoryLock);
     }
     LockSemaphoreInfo(openclCachedFilesDirectoryLock);
     if (openclCachedFilesDirectory == NULL) {
index e301977688b8cc37356ce3079556e659aa682b4b..19d09c4d5e42cc11e70a16f2b6a43885d26fd255 100644 (file)
@@ -429,7 +429,7 @@ static MagickBooleanType InitializePolicyList(ExceptionInfo *exception)
       (instantiate_policy == MagickFalse))
     {
       if (policy_semaphore == (SemaphoreInfo *) NULL)
-        policy_semaphore=AcquireSemaphoreInfo();
+        ActivateSemaphoreInfo(&policy_semaphore);
       LockSemaphoreInfo(policy_semaphore);
       if ((policy_list == (LinkedListInfo *) NULL) &&
           (instantiate_policy == MagickFalse))
@@ -1016,7 +1016,7 @@ static void *DestroyPolicyElement(void *policy_info)
 MagickPrivate void PolicyComponentTerminus(void)
 {
   if (policy_semaphore == (SemaphoreInfo *) NULL)
-    policy_semaphore=AcquireSemaphoreInfo();
+    ActivateSemaphoreInfo(&policy_semaphore);
   LockSemaphoreInfo(policy_semaphore);
   if (policy_list != (LinkedListInfo *) NULL)
     policy_list=DestroyLinkedList(policy_list,DestroyPolicyElement);
index b9990724f6a7e5dfb1eaacded147f7db07d7b008..e5eb9213f041636f9ee570947e17c97abb80b682 100644 (file)
@@ -762,7 +762,7 @@ MagickPrivate MagickBooleanType RandomComponentGenesis(void)
 MagickPrivate void RandomComponentTerminus(void)
 {
   if (random_semaphore == (SemaphoreInfo *) NULL)
-    random_semaphore=AcquireSemaphoreInfo();
+    ActivateSemaphoreInfo(&random_semaphore);
   RelinquishSemaphoreInfo(&random_semaphore);
 }
 \f
index f0592b7e9700d896957cdc23d387433e6a90c620..d5343c54de729325823fcbd0335a845f2ec89534 100644 (file)
@@ -325,7 +325,7 @@ MagickPrivate MagickBooleanType RegistryComponentGenesis(void)
 MagickPrivate void RegistryComponentTerminus(void)
 {
   if (registry_semaphore == (SemaphoreInfo *) NULL)
-    registry_semaphore=AcquireSemaphoreInfo();
+    ActivateSemaphoreInfo(&registry_semaphore);
   LockSemaphoreInfo(registry_semaphore);
   if (IsEventLogging() != MagickFalse)
     (void) LogMagickEvent(TraceEvent,GetMagickModule(),"...");
@@ -528,7 +528,7 @@ MagickExport MagickBooleanType SetImageRegistry(const RegistryType type,
       (instantiate_registry == MagickFalse))
     {
       if (registry_semaphore == (SemaphoreInfo *) NULL)
-        registry_semaphore=AcquireSemaphoreInfo();
+        ActivateSemaphoreInfo(&registry_semaphore);
       LockSemaphoreInfo(registry_semaphore);
       if ((registry == (SplayTreeInfo *) NULL) &&
           (instantiate_registry == MagickFalse))
index 9f99b64a128b65f269e201675c76f641a095ecc2..f6da52a7e771e3416c83a52595f41cfb547e2ab2 100644 (file)
@@ -167,7 +167,7 @@ MagickExport MagickBooleanType AcquireMagickResource(const ResourceType type,
   status=MagickFalse;
   (void) FormatMagickSize(size,MagickFalse,resource_request);
   if (resource_semaphore == (SemaphoreInfo *) NULL)
-    resource_semaphore=AcquireSemaphoreInfo();
+    ActivateSemaphoreInfo(&resource_semaphore);
   LockSemaphoreInfo(resource_semaphore);
   switch (type)
   {
@@ -501,7 +501,7 @@ MagickExport int AcquireUniqueFileResource(char *path)
   if (file == -1)
     return(file);
   if (resource_semaphore == (SemaphoreInfo *) NULL)
-    resource_semaphore=AcquireSemaphoreInfo();
+    ActivateSemaphoreInfo(&resource_semaphore);
   LockSemaphoreInfo(resource_semaphore);
   if (temporary_resources == (SplayTreeInfo *) NULL)
     temporary_resources=NewSplayTree(CompareSplayTreeString,
@@ -619,7 +619,7 @@ MagickExport MagickSizeType GetMagickResourceLimit(const ResourceType type)
 
   resource=0;
   if (resource_semaphore == (SemaphoreInfo *) NULL)
-    resource_semaphore=AcquireSemaphoreInfo();
+    ActivateSemaphoreInfo(&resource_semaphore);
   LockSemaphoreInfo(resource_semaphore);
   switch (type)
   {
@@ -708,7 +708,7 @@ MagickExport MagickBooleanType ListMagickResourceInfo(FILE *file,
   if (file == (const FILE *) NULL)
     file=stdout;
   if (resource_semaphore == (SemaphoreInfo *) NULL)
-    resource_semaphore=AcquireSemaphoreInfo();
+    ActivateSemaphoreInfo(&resource_semaphore);
   LockSemaphoreInfo(resource_semaphore);
   (void) FormatMagickSize(resource_info.area_limit,MagickFalse,area_limit);
   (void) FormatMagickSize(resource_info.memory_limit,MagickTrue,memory_limit);
@@ -770,7 +770,7 @@ MagickExport void RelinquishMagickResource(const ResourceType type,
 
   (void) FormatMagickSize(size,MagickFalse,resource_request);
   if (resource_semaphore == (SemaphoreInfo *) NULL)
-    resource_semaphore=AcquireSemaphoreInfo();
+               ActivateSemaphoreInfo(&resource_semaphore);
   LockSemaphoreInfo(resource_semaphore);
   switch (type)
   {
index 033a0acc1e09a5e59120b77a3a194d3ad65259a9..e8b4bab7e9a7a9a06c577cdcf5418ac1b9f1c8c1 100644 (file)
@@ -236,6 +236,41 @@ MagickExport SemaphoreInfo *AcquireSemaphoreInfo(void)
 %                                                                             %
 %                                                                             %
 %                                                                             %
+%   A c t i v a t e S e m a p h o r e I n f o                                 %
+%                                                                             %
+%                                                                             %
+%                                                                             %
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+%  ActivateSemaphoreInfo() acquires a semaphore.
+%
+%  The format of the ActivateSemaphoreInfo method is:
+%
+%      void ActivateSemaphoreInfo(SemaphoreInfo **semaphore_info)
+%
+%  A description of each parameter follows:
+%
+%    o semaphore_info: Specifies a pointer to an SemaphoreInfo structure.
+%
+*/
+MagickExport void ActivateSemaphoreInfo(SemaphoreInfo **semaphore_info)
+{
+  assert(semaphore_info != (SemaphoreInfo **) NULL);
+  if (*semaphore_info == (SemaphoreInfo *) NULL)
+    {
+      InitializeMagickMutex();
+      LockMagickMutex();
+      if (*semaphore_info == (SemaphoreInfo *) NULL)
+        *semaphore_info=AllocateSemaphoreInfo();
+      UnlockMagickMutex();
+    }
+}
+\f
+/*
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%                                                                             %
+%                                                                             %
+%                                                                             %
 %   L o c k S e m a p h o r e I n f o                                         %
 %                                                                             %
 %                                                                             %
index 80e5ee0bb98bc3bb5ab5841eebe0ec634fd46448..dcb047f04784033a5575c6a11e0535b121e677cf 100644 (file)
@@ -29,6 +29,7 @@ extern MagickExport SemaphoreInfo
   *AcquireSemaphoreInfo(void);
 
 extern MagickExport void
+  ActivateSemaphoreInfo(SemaphoreInfo **),
   LockSemaphoreInfo(SemaphoreInfo *),
   RelinquishSemaphoreInfo(SemaphoreInfo **),
   UnlockSemaphoreInfo(SemaphoreInfo *);
index 6d4879104947e9b756d92bbbd233e0c5d2c91093..22bf854ac70c2686c7e5efcf01846dccdf1fd89f 100644 (file)
@@ -786,7 +786,7 @@ static MagickBooleanType InitializeTypeList(ExceptionInfo *exception)
       (instantiate_type == MagickFalse))
     {
       if (type_semaphore == (SemaphoreInfo *) NULL)
-        type_semaphore=AcquireSemaphoreInfo();
+                   ActivateSemaphoreInfo(&type_semaphore);
       LockSemaphoreInfo(type_semaphore);
       if ((type_list == (SplayTreeInfo *) NULL) &&
           (instantiate_type == MagickFalse))
@@ -1390,7 +1390,7 @@ MagickPrivate MagickBooleanType TypeComponentGenesis(void)
 MagickPrivate void TypeComponentTerminus(void)
 {
   if (type_semaphore == (SemaphoreInfo *) NULL)
-    type_semaphore=AcquireSemaphoreInfo();
+    ActivateSemaphoreInfo(&type_semaphore);
   LockSemaphoreInfo(type_semaphore);
   if (type_list != (SplayTreeInfo *) NULL)
     type_list=DestroySplayTree(type_list);
index 560e017c61f7df6f128dec1586585737dc7dd611..065054ad5ec8f7a530c5a69196af8527c6facf46 100644 (file)
@@ -77,7 +77,7 @@ WandExport size_t AcquireWandId(void)
     id = 0;
 
   if (wand_semaphore == (SemaphoreInfo *) NULL)
-    wand_semaphore=AcquireSemaphoreInfo();
+    ActivateSemaphoreInfo(&wand_semaphore);
   LockSemaphoreInfo(wand_semaphore);
   if ((wand_ids == (SplayTreeInfo *) NULL) && IsMagickFalse(instantiate_wand))
     {
@@ -114,7 +114,7 @@ WandExport size_t AcquireWandId(void)
 WandExport void DestroyWandIds(void)
 {
   if (wand_semaphore == (SemaphoreInfo *) NULL)
-    wand_semaphore=AcquireSemaphoreInfo();
+    ActivateSemaphoreInfo(&wand_semaphore);
   LockSemaphoreInfo(wand_semaphore);
   if (wand_ids != (SplayTreeInfo *) NULL)
     wand_ids=DestroySplayTree(wand_ids);
index 8a771e8529152c457ea0ccbdefa54cacbc3f3c7c..d443b3fa16c4ea8ff7bdae935328256629fb26ce 100644 (file)
@@ -1873,7 +1873,7 @@ ModuleExport size_t RegisterTIFFImage(void)
     *entry;
 
   if (tiff_semaphore == (SemaphoreInfo *) NULL)
-    tiff_semaphore=AcquireSemaphoreInfo();
+    ActivateSemaphoreInfo(&tiff_semaphore);
   LockSemaphoreInfo(tiff_semaphore);
   if (instantiate_key == MagickFalse)
     {
@@ -2006,7 +2006,7 @@ ModuleExport void UnregisterTIFFImage(void)
   (void) UnregisterMagickInfo("TIF");
   (void) UnregisterMagickInfo("PTIF");
   if (tiff_semaphore == (SemaphoreInfo *) NULL)
-    tiff_semaphore=AcquireSemaphoreInfo();
+    ActivateSemaphoreInfo(&tiff_semaphore);
   LockSemaphoreInfo(tiff_semaphore);
   if (instantiate_key != MagickFalse)
     {