MagickExport const CoderInfo *GetCoderInfo(const char *name,
ExceptionInfo *exception)
{
- const CoderInfo
- *coder_info;
-
assert(exception != (ExceptionInfo *) NULL);
if (IsCoderTreeInstantiated(exception) == MagickFalse)
return((const CoderInfo *) NULL);
- LockSemaphoreInfo(coder_semaphore);
if ((name == (const char *) NULL) || (LocaleCompare(name,"*") == 0))
- {
- ResetSplayTreeIterator(coder_cache);
- coder_info=(const CoderInfo *) GetNextValueInSplayTree(coder_cache);
- UnlockSemaphoreInfo(coder_semaphore);
- return(coder_info);
- }
- coder_info=(const CoderInfo *) GetValueFromSplayTree(coder_cache,name);
- UnlockSemaphoreInfo(coder_semaphore);
- return(coder_info);
+ return((const CoderInfo *) GetRootValueFromSplayTree(coder_cache));
+ return((const CoderInfo *) GetValueFromSplayTree(coder_cache,name));
}
\f
/*
}
#endif
if ((name == (const char *) NULL) || (LocaleCompare(name,"*") == 0))
- {
- LockSemaphoreInfo(magick_semaphore);
- ResetSplayTreeIterator(magick_list);
- magick_info=(const MagickInfo *) GetNextValueInSplayTree(magick_list);
- UnlockSemaphoreInfo(magick_semaphore);
- return(magick_info);
- }
+ magick_info=(const MagickInfo *) GetRootValueFromSplayTree(magick_list);
if (magick_info == (const MagickInfo *) NULL)
magick_info=(const MagickInfo *) GetValueFromSplayTree(magick_list,name);
return(magick_info);
% %
% %
% %
+% G e t R o o t V a l u e F r o m S p l a y T r e e %
+% %
+% %
+% %
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% GetRootValueFromSplayTree() gets the root value from the splay-tree.
+%
+% The format of the GetRootValueFromSplayTree method is:
+%
+% const void *GetRootValueFromSplayTree(SplayTreeInfo *splay_tree)
+%
+% A description of each parameter follows:
+%
+% o splay_tree: the splay tree.
+%
+% o key: the key.
+%
+*/
+MagickExport const void *GetRootValueFromSplayTree(SplayTreeInfo *splay_tree)
+{
+ const void
+ *value;
+
+ assert(splay_tree != (SplayTreeInfo *) NULL);
+ assert(splay_tree->signature == MagickCoreSignature);
+ if (splay_tree->debug != MagickFalse)
+ (void) LogMagickEvent(TraceEvent,GetMagickModule(),"...");
+ LockSemaphoreInfo(splay_tree->semaphore);
+ value=NULL;
+ if (splay_tree->root != (NodeInfo *) NULL)
+ value=splay_tree->root->value;
+ UnlockSemaphoreInfo(splay_tree->semaphore);
+ return(value);
+}
+\f
+/*
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% %
+% %
+% %
% G e t V a l u e F r o m S p l a y T r e e %
% %
% %
extern MagickExport const void
*GetNextKeyInSplayTree(SplayTreeInfo *),
*GetNextValueInSplayTree(SplayTreeInfo *),
+ *GetRootValueFromSplayTree(SplayTreeInfo *),
*GetValueFromSplayTree(SplayTreeInfo *,const void *);
extern MagickExport int
MagickExport const TypeInfo *GetTypeInfo(const char *name,
ExceptionInfo *exception)
{
- const TypeInfo
- *type_info;
-
assert(exception != (ExceptionInfo *) NULL);
if (IsTypeTreeInstantiated(exception) == MagickFalse)
return((const TypeInfo *) NULL);
- LockSemaphoreInfo(type_semaphore);
if ((name == (const char *) NULL) || (LocaleCompare(name,"*") == 0))
- {
- ResetSplayTreeIterator(type_cache);
- type_info=(const TypeInfo *) GetNextValueInSplayTree(type_cache);
- UnlockSemaphoreInfo(type_semaphore);
- return(type_info);
- }
- type_info=(const TypeInfo *) GetValueFromSplayTree(type_cache,name);
- UnlockSemaphoreInfo(type_semaphore);
- return(type_info);
+ return((const TypeInfo *) GetRootValueFromSplayTree(type_cache));
+ return((const TypeInfo *) GetValueFromSplayTree(type_cache,name));
}
\f
/*