% MagickCore Registry Methods %
% %
% Software Design %
-% John Cristy %
+% Cristy %
% March 2000 %
% %
% %
-% Copyright 1999-2012 ImageMagick Studio LLC, a non-profit organization %
+% Copyright 1999-2014 ImageMagick Studio LLC, a non-profit organization %
% dedicated to making software imaging solutions freely available. %
% %
% You may not use this file except in compliance with the License. You may %
static SemaphoreInfo
*registry_semaphore = (SemaphoreInfo *) NULL;
-
-static volatile MagickBooleanType
- instantiate_registry = MagickFalse;
\f
/*
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
if (registry_info == (void *) NULL)
{
(void) ThrowMagickException(exception,GetMagickModule(),RegistryError,
- "UnableToGetRegistryID","'%s'",key);
+ "UnableToGetRegistryID","`%s'",key);
return((void *) NULL);
}
value=(void *) NULL;
*/
MagickPrivate MagickBooleanType RegistryComponentGenesis(void)
{
- AcquireSemaphoreInfo(®istry_semaphore);
+ if (registry_semaphore == (SemaphoreInfo *) NULL)
+ registry_semaphore=AcquireSemaphoreInfo();
return(MagickTrue);
}
\f
MagickPrivate void RegistryComponentTerminus(void)
{
if (registry_semaphore == (SemaphoreInfo *) NULL)
- AcquireSemaphoreInfo(®istry_semaphore);
+ ActivateSemaphoreInfo(®istry_semaphore);
LockSemaphoreInfo(registry_semaphore);
if (IsEventLogging() != MagickFalse)
(void) LogMagickEvent(TraceEvent,GetMagickModule(),"...");
if (registry != (void *) NULL)
registry=DestroySplayTree(registry);
- instantiate_registry=MagickFalse;
UnlockSemaphoreInfo(registry_semaphore);
- DestroySemaphoreInfo(®istry_semaphore);
+ RelinquishSemaphoreInfo(®istry_semaphore);
}
\f
/*
if (IsEventLogging() != MagickFalse)
(void) LogMagickEvent(TraceEvent,GetMagickModule(),"%s",key);
+ if (value == (const void *) NULL)
+ return(MagickFalse);
clone_value=(void *) NULL;
switch (type)
{
registry_info->type=type;
registry_info->value=clone_value;
registry_info->signature=MagickSignature;
- if ((registry == (SplayTreeInfo *) NULL) &&
- (instantiate_registry == MagickFalse))
+ if (registry == (SplayTreeInfo *) NULL)
{
if (registry_semaphore == (SemaphoreInfo *) NULL)
- AcquireSemaphoreInfo(®istry_semaphore);
+ ActivateSemaphoreInfo(®istry_semaphore);
LockSemaphoreInfo(registry_semaphore);
- if ((registry == (SplayTreeInfo *) NULL) &&
- (instantiate_registry == MagickFalse))
- {
- registry=NewSplayTree(CompareSplayTreeString,RelinquishMagickMemory,
- DestroyRegistryNode);
- instantiate_registry=MagickTrue;
- }
+ if (registry == (SplayTreeInfo *) NULL)
+ registry=NewSplayTree(CompareSplayTreeString,RelinquishMagickMemory,
+ DestroyRegistryNode);
UnlockSemaphoreInfo(registry_semaphore);
}
status=AddValueToSplayTree(registry,ConstantString(key),registry_info);