#include "magick/studio.h"#include "magick/exception.h"#include "magick/exception-private.h"#include "magick/log.h"#include "magick/memory_.h"#include "magick/splay-tree.h"#include "magick/semaphore.h"#include "magick/string_.h"
Go to the source code of this file.
Data Structures | |
| struct | _NodeInfo |
| struct | _SplayTreeInfo |
Defines | |
| #define | MaxSplayTreeDepth 1024 |
Typedefs | |
| typedef struct _NodeInfo | NodeInfo |
Functions | |
| static int | IterateOverSplayTree (SplayTreeInfo *, int(*)(NodeInfo *, const void *), const void *) |
| static void | SplaySplayTree (SplayTreeInfo *, const void *) |
| MagickExport MagickBooleanType | AddValueToSplayTree (SplayTreeInfo *splay_tree, const void *key, const void *value) |
| static NodeInfo * | LinkSplayTreeNodes (NodeInfo **nodes, const unsigned long low, const unsigned long high) |
| static int | SplayTreeToNodeArray (NodeInfo *node, const void *nodes) |
| static void | BalanceSplayTree (SplayTreeInfo *splay_tree) |
| MagickExport SplayTreeInfo * | CloneSplayTree (SplayTreeInfo *splay_tree, void *(*clone_key)(void *), void *(*clone_value)(void *)) |
| MagickExport int | CompareSplayTreeString (const void *target, const void *source) |
| MagickExport int | CompareSplayTreeStringInfo (const void *target, const void *source) |
| static void * | GetFirstSplayTreeNode (SplayTreeInfo *splay_tree) |
| MagickExport MagickBooleanType | DeleteNodeByValueFromSplayTree (SplayTreeInfo *splay_tree, const void *value) |
| MagickExport MagickBooleanType | DeleteNodeFromSplayTree (SplayTreeInfo *splay_tree, const void *key) |
| MagickExport SplayTreeInfo * | DestroySplayTree (SplayTreeInfo *splay_tree) |
| MagickExport void * | GetNextKeyInSplayTree (SplayTreeInfo *splay_tree) |
| MagickExport void * | GetNextValueInSplayTree (SplayTreeInfo *splay_tree) |
| MagickExport void * | GetValueFromSplayTree (SplayTreeInfo *splay_tree, const void *key) |
| MagickExport unsigned long | GetNumberOfNodesInSplayTree (const SplayTreeInfo *splay_tree) |
| MagickExport SplayTreeInfo * | NewSplayTree (int(*compare)(const void *, const void *), void *(*relinquish_key)(void *), void *(*relinquish_value)(void *)) |
| MagickExport void * | RemoveNodeByValueFromSplayTree (SplayTreeInfo *splay_tree, const void *value) |
| MagickExport void * | RemoveNodeFromSplayTree (SplayTreeInfo *splay_tree, const void *key) |
| MagickExport void | ResetSplayTree (SplayTreeInfo *splay_tree) |
| MagickExport void | ResetSplayTreeIterator (SplayTreeInfo *splay_tree) |
| static NodeInfo * | Splay (SplayTreeInfo *splay_tree, const unsigned long depth, const void *key, NodeInfo **node, NodeInfo **parent, NodeInfo **grandparent) |
| #define MaxSplayTreeDepth 1024 |
Definition at line 63 of file splay-tree.c.
Referenced by Splay().
| MagickExport MagickBooleanType AddValueToSplayTree | ( | SplayTreeInfo * | splay_tree, | |
| const void * | key, | |||
| const void * | value | |||
| ) |
Definition at line 150 of file splay-tree.c.
References AcquireMagickMemory(), _SplayTreeInfo::compare, _SplayTreeInfo::key, _NodeInfo::key, _NodeInfo::left, LockSemaphoreInfo(), MagickFalse, MagickTrue, _SplayTreeInfo::nodes, _SplayTreeInfo::relinquish_key, _SplayTreeInfo::relinquish_value, _NodeInfo::right, _SplayTreeInfo::root, _SplayTreeInfo::semaphore, SplaySplayTree(), UnlockSemaphoreInfo(), and _NodeInfo::value.
Referenced by AcquirePixelCache(), AcquireUniqueFileResource(), CloneSplayTree(), FxChannelStatistics(), FxEvaluateSubexpression(), FxGetSymbol(), GetImageAttribute(), GetMagickProperty(), GetXMLTreeAttributes(), GetXMPProperty(), InitializeMagickList(), LoadCoderList(), LoadCoderLists(), LoadFontConfigFonts(), LoadLocaleList(), LoadTypeList(), RegisterMagickInfo(), SetImageArtifact(), SetImageOption(), SetImageProfile(), SetImageProperty(), and SetImageRegistry().
| static void BalanceSplayTree | ( | SplayTreeInfo * | splay_tree | ) | [static] |
Definition at line 276 of file splay-tree.c.
References AcquireQuantumMemory(), _SplayTreeInfo::balance, IterateOverSplayTree(), LinkSplayTreeNodes(), MagickFalse, _SplayTreeInfo::nodes, RelinquishMagickMemory(), ResourceLimitFatalError, _SplayTreeInfo::root, SplayTreeToNodeArray(), and ThrowFatalException.
Referenced by SplaySplayTree().
| MagickExport SplayTreeInfo* CloneSplayTree | ( | SplayTreeInfo * | splay_tree, | |
| void *(*)(void *) | clone_key, | |||
| void *(*)(void *) | clone_value | |||
| ) |
Definition at line 328 of file splay-tree.c.
References AddValueToSplayTree(), _SplayTreeInfo::compare, _SplayTreeInfo::debug, GetMagickModule, _NodeInfo::key, _NodeInfo::left, LockSemaphoreInfo(), LogMagickEvent(), MagickFalse, MagickSignature, NewSplayTree(), _SplayTreeInfo::relinquish_key, _SplayTreeInfo::relinquish_value, _NodeInfo::right, _SplayTreeInfo::root, _SplayTreeInfo::semaphore, _SplayTreeInfo::signature, TraceEvent, UnlockSemaphoreInfo(), and _NodeInfo::value.
Referenced by CloneImageArtifacts(), CloneImageOptions(), CloneImageProfiles(), and CloneImageProperties().
| MagickExport int CompareSplayTreeString | ( | const void * | target, | |
| const void * | source | |||
| ) |
Definition at line 426 of file splay-tree.c.
References LocaleCompare().
Referenced by AcquireFxInfo(), AcquireUniqueFileResource(), GetImageAttribute(), GetMagickProperty(), GetXMPProperty(), InitializeMagickList(), LoadCoderList(), LoadCoderLists(), LoadLocaleList(), LoadTypeList(), SetImageArtifact(), SetImageOption(), SetImageProfile(), SetImageProperty(), and SetImageRegistry().
| MagickExport int CompareSplayTreeStringInfo | ( | const void * | target, | |
| const void * | source | |||
| ) |
Definition at line 462 of file splay-tree.c.
References CompareStringInfo().
| MagickExport MagickBooleanType DeleteNodeByValueFromSplayTree | ( | SplayTreeInfo * | splay_tree, | |
| const void * | value | |||
| ) |
Definition at line 514 of file splay-tree.c.
References _SplayTreeInfo::compare, _SplayTreeInfo::debug, GetFirstSplayTreeNode(), GetMagickModule, _SplayTreeInfo::key, _NodeInfo::key, _NodeInfo::left, LockSemaphoreInfo(), LogMagickEvent(), MagickFalse, MagickSignature, MagickTrue, _SplayTreeInfo::nodes, _SplayTreeInfo::relinquish_key, _SplayTreeInfo::relinquish_value, RelinquishMagickMemory(), _NodeInfo::right, _SplayTreeInfo::root, _SplayTreeInfo::semaphore, _SplayTreeInfo::signature, SplaySplayTree(), TraceEvent, UnlockSemaphoreInfo(), and _NodeInfo::value.
Referenced by DestroyPixelCache(), and UnregisterMagickInfo().
| MagickExport MagickBooleanType DeleteNodeFromSplayTree | ( | SplayTreeInfo * | splay_tree, | |
| const void * | key | |||
| ) |
Definition at line 629 of file splay-tree.c.
References _SplayTreeInfo::compare, _SplayTreeInfo::debug, GetMagickModule, _NodeInfo::key, _SplayTreeInfo::key, _NodeInfo::left, LockSemaphoreInfo(), LogMagickEvent(), MagickFalse, MagickSignature, MagickTrue, _SplayTreeInfo::nodes, _SplayTreeInfo::relinquish_key, _SplayTreeInfo::relinquish_value, RelinquishMagickMemory(), _NodeInfo::right, _SplayTreeInfo::root, _SplayTreeInfo::semaphore, _SplayTreeInfo::signature, SplaySplayTree(), TraceEvent, UnlockSemaphoreInfo(), and _NodeInfo::value.
Referenced by DeleteImageArtifact(), DeleteImageOption(), DeleteImageProfile(), DeleteImageProperty(), DeleteImageRegistry(), FxChannelStatistics(), FxEvaluateSubexpression(), and RelinquishUniqueFileResource().
| MagickExport SplayTreeInfo* DestroySplayTree | ( | SplayTreeInfo * | splay_tree | ) |
Definition at line 708 of file splay-tree.c.
References DestroySemaphoreInfo(), _NodeInfo::key, _NodeInfo::left, LockSemaphoreInfo(), MagickSignature, _SplayTreeInfo::relinquish_key, _SplayTreeInfo::relinquish_value, RelinquishMagickMemory(), _NodeInfo::right, _SplayTreeInfo::root, _SplayTreeInfo::semaphore, _SplayTreeInfo::signature, UnlockSemaphoreInfo(), and _NodeInfo::value.
Referenced by CacheComponentTerminus(), CoderComponentTerminus(), DestroyFxInfo(), DestroyImageArtifacts(), DestroyImageAttributes(), DestroyImageOptions(), DestroyImageProfiles(), DestroyImageProperties(), LocaleComponentTerminus(), MagickComponentTerminus(), RegistryComponentTerminus(), ResourceComponentTerminus(), and TypeComponentTerminus().
| static void* GetFirstSplayTreeNode | ( | SplayTreeInfo * | splay_tree | ) | [static] |
Definition at line 501 of file splay-tree.c.
References _NodeInfo::key, _NodeInfo::left, and _SplayTreeInfo::root.
Referenced by DeleteNodeByValueFromSplayTree(), RemoveNodeByValueFromSplayTree(), and ResetSplayTreeIterator().
| MagickExport void* GetNextKeyInSplayTree | ( | SplayTreeInfo * | splay_tree | ) |
Definition at line 795 of file splay-tree.c.
References _SplayTreeInfo::debug, GetMagickModule, _NodeInfo::key, _NodeInfo::left, LockSemaphoreInfo(), LogMagickEvent(), MagickFalse, MagickSignature, _SplayTreeInfo::next, _NodeInfo::right, _SplayTreeInfo::root, _SplayTreeInfo::semaphore, _SplayTreeInfo::signature, SplaySplayTree(), TraceEvent, and UnlockSemaphoreInfo().
Referenced by AsynchronousResourceComponentTerminus(), GetNextImageArtifact(), GetNextImageOption(), GetNextImageProfile(), GetNextImageProperty(), GetNextImageRegistry(), LimitPixelCacheDescriptors(), and RelinquishUniqueFileResource().
| MagickExport void* GetNextValueInSplayTree | ( | SplayTreeInfo * | splay_tree | ) |
Definition at line 849 of file splay-tree.c.
References _SplayTreeInfo::debug, GetMagickModule, _NodeInfo::key, _NodeInfo::left, LockSemaphoreInfo(), LogMagickEvent(), MagickFalse, MagickSignature, _SplayTreeInfo::next, _NodeInfo::right, _SplayTreeInfo::root, _SplayTreeInfo::semaphore, _SplayTreeInfo::signature, SplaySplayTree(), TraceEvent, UnlockSemaphoreInfo(), and _NodeInfo::value.
Referenced by GetCoderInfo(), GetCoderInfoList(), GetCoderList(), GetImageArtifact(), GetImageMagick(), GetImageProperty(), GetLocaleInfo_(), GetLocaleInfoList(), GetLocaleList(), GetMagickInfo(), GetMagickInfoList(), GetMagickList(), GetTypeInfo(), GetTypeInfoByFamily(), GetTypeInfoList(), GetTypeList(), and UnregisterMagickInfo().
| MagickExport unsigned long GetNumberOfNodesInSplayTree | ( | const SplayTreeInfo * | splay_tree | ) |
Definition at line 958 of file splay-tree.c.
References _SplayTreeInfo::debug, GetMagickModule, LogMagickEvent(), MagickFalse, MagickSignature, _SplayTreeInfo::nodes, _SplayTreeInfo::signature, and TraceEvent.
Referenced by GetCoderInfo(), GetCoderInfoList(), GetCoderList(), GetLocaleInfo_(), GetLocaleInfoList(), GetLocaleList(), GetMagickInfoList(), GetMagickList(), GetTypeInfo(), GetTypeInfoList(), GetTypeList(), LoadLocaleLists(), LoadTypeLists(), and UnregisterMagickInfo().
| MagickExport void* GetValueFromSplayTree | ( | SplayTreeInfo * | splay_tree, | |
| const void * | key | |||
| ) |
Definition at line 903 of file splay-tree.c.
References _SplayTreeInfo::compare, _SplayTreeInfo::debug, GetMagickModule, _NodeInfo::key, LockSemaphoreInfo(), LogMagickEvent(), MagickFalse, MagickSignature, _SplayTreeInfo::root, _SplayTreeInfo::semaphore, _SplayTreeInfo::signature, SplaySplayTree(), TraceEvent, UnlockSemaphoreInfo(), and _NodeInfo::value.
Referenced by FxChannelStatistics(), FxGetSymbol(), GetCoderInfo(), GetEXIFProperty(), GetImageArtifact(), GetImageAttribute(), GetImageOption(), GetImageProfile(), GetImageProperty(), GetImageRegistry(), GetLocaleInfo_(), and GetTypeInfo().
| static int IterateOverSplayTree | ( | SplayTreeInfo * | splay_tree, | |
| int(*)(NodeInfo *, const void *) | method, | |||
| const void * | value | |||
| ) | [static] |
Definition at line 995 of file splay-tree.c.
References AcquireQuantumMemory(), _NodeInfo::left, MagickFalse, MagickTrue, _SplayTreeInfo::nodes, RelinquishMagickMemory(), ResourceLimitFatalError, _NodeInfo::right, _SplayTreeInfo::root, and ThrowFatalException.
Referenced by BalanceSplayTree().
| static NodeInfo* LinkSplayTreeNodes | ( | NodeInfo ** | nodes, | |
| const unsigned long | low, | |||
| const unsigned long | high | |||
| ) | [static] |
Definition at line 243 of file splay-tree.c.
References _NodeInfo::left.
Referenced by BalanceSplayTree().
| MagickExport SplayTreeInfo* NewSplayTree | ( | int(*)(const void *, const void *) | compare, | |
| void *(*)(void *) | relinquish_key, | |||
| void *(*)(void *) | relinquish_value | |||
| ) |
Definition at line 1123 of file splay-tree.c.
References AcquireMagickMemory(), AllocateSemaphoreInfo(), _SplayTreeInfo::balance, _SplayTreeInfo::compare, _SplayTreeInfo::debug, IsEventLogging(), _SplayTreeInfo::key, MagickFalse, MagickSignature, _SplayTreeInfo::next, _SplayTreeInfo::nodes, _SplayTreeInfo::relinquish_key, _SplayTreeInfo::relinquish_value, ResetMagickMemory(), ResourceLimitFatalError, _SplayTreeInfo::root, _SplayTreeInfo::semaphore, _SplayTreeInfo::signature, and ThrowFatalException.
Referenced by AcquireFxInfo(), AcquirePixelCache(), AcquireUniqueFileResource(), CloneSplayTree(), GetImageAttribute(), GetMagickProperty(), GetXMPProperty(), InitializeMagickList(), LoadCoderList(), LoadCoderLists(), LoadLocaleList(), LoadTypeList(), SetImageArtifact(), SetImageOption(), SetImageProfile(), SetImageProperty(), and SetImageRegistry().
| MagickExport void* RemoveNodeByValueFromSplayTree | ( | SplayTreeInfo * | splay_tree, | |
| const void * | value | |||
| ) |
Definition at line 1174 of file splay-tree.c.
References _SplayTreeInfo::compare, _SplayTreeInfo::debug, GetFirstSplayTreeNode(), GetMagickModule, _SplayTreeInfo::key, _NodeInfo::key, _NodeInfo::left, LockSemaphoreInfo(), LogMagickEvent(), MagickFalse, MagickSignature, _SplayTreeInfo::nodes, _SplayTreeInfo::relinquish_value, RelinquishMagickMemory(), _NodeInfo::right, _SplayTreeInfo::root, _SplayTreeInfo::semaphore, _SplayTreeInfo::signature, SplaySplayTree(), TraceEvent, UnlockSemaphoreInfo(), and _NodeInfo::value.
| MagickExport void* RemoveNodeFromSplayTree | ( | SplayTreeInfo * | splay_tree, | |
| const void * | key | |||
| ) |
Definition at line 1283 of file splay-tree.c.
References _SplayTreeInfo::compare, _SplayTreeInfo::debug, GetMagickModule, _NodeInfo::key, _SplayTreeInfo::key, _NodeInfo::left, LockSemaphoreInfo(), LogMagickEvent(), MagickFalse, MagickSignature, _SplayTreeInfo::nodes, _SplayTreeInfo::relinquish_key, RelinquishMagickMemory(), _NodeInfo::right, _SplayTreeInfo::root, _SplayTreeInfo::semaphore, _SplayTreeInfo::signature, SplaySplayTree(), TraceEvent, UnlockSemaphoreInfo(), and _NodeInfo::value.
Referenced by RemoveImageArtifact(), RemoveImageOption(), RemoveImageProfile(), RemoveImageProperty(), and RemoveImageRegistry().
| MagickExport void ResetSplayTree | ( | SplayTreeInfo * | splay_tree | ) |
Definition at line 1364 of file splay-tree.c.
References _SplayTreeInfo::balance, _SplayTreeInfo::debug, GetMagickModule, _SplayTreeInfo::key, _NodeInfo::key, _NodeInfo::left, LockSemaphoreInfo(), LogMagickEvent(), MagickFalse, MagickSignature, _SplayTreeInfo::next, _SplayTreeInfo::nodes, _SplayTreeInfo::relinquish_key, _SplayTreeInfo::relinquish_value, RelinquishMagickMemory(), _NodeInfo::right, _SplayTreeInfo::root, _SplayTreeInfo::semaphore, _SplayTreeInfo::signature, TraceEvent, UnlockSemaphoreInfo(), and _NodeInfo::value.
Referenced by ResetImageOptions().
| MagickExport void ResetSplayTreeIterator | ( | SplayTreeInfo * | splay_tree | ) |
Definition at line 1456 of file splay-tree.c.
References _SplayTreeInfo::debug, GetFirstSplayTreeNode(), GetMagickModule, LockSemaphoreInfo(), LogMagickEvent(), MagickFalse, MagickSignature, _SplayTreeInfo::next, _SplayTreeInfo::semaphore, _SplayTreeInfo::signature, TraceEvent, and UnlockSemaphoreInfo().
Referenced by AsynchronousResourceComponentTerminus(), GetCoderInfo(), GetCoderInfoList(), GetCoderList(), GetImageArtifact(), GetImageMagick(), GetImageProperty(), GetLocaleInfo_(), GetLocaleInfoList(), GetMagickInfo(), GetMagickInfoList(), GetMagickList(), GetTypeInfo(), GetTypeInfoByFamily(), GetTypeInfoList(), GetTypeList(), LimitPixelCacheDescriptors(), RelinquishUniqueFileResource(), ResetImageArtifactIterator(), ResetImageOptionIterator(), ResetImageProfileIterator(), ResetImagePropertyIterator(), ResetImageRegistryIterator(), and UnregisterMagickInfo().
| static NodeInfo* Splay | ( | SplayTreeInfo * | splay_tree, | |
| const unsigned long | depth, | |||
| const void * | key, | |||
| NodeInfo ** | node, | |||
| NodeInfo ** | parent, | |||
| NodeInfo ** | grandparent | |||
| ) | [static] |
Definition at line 1499 of file splay-tree.c.
References _SplayTreeInfo::balance, _SplayTreeInfo::compare, _NodeInfo::key, _NodeInfo::left, MagickFalse, MagickTrue, MaxSplayTreeDepth, and _NodeInfo::right.
Referenced by SplaySplayTree().
| static void SplaySplayTree | ( | SplayTreeInfo * | splay_tree, | |
| const void * | key | |||
| ) | [static] |
Definition at line 1590 of file splay-tree.c.
References _SplayTreeInfo::balance, BalanceSplayTree(), _SplayTreeInfo::compare, _NodeInfo::key, _SplayTreeInfo::key, MagickFalse, ResourceLimitFatalError, _SplayTreeInfo::root, Splay(), and ThrowFatalException.
Referenced by AddValueToSplayTree(), DeleteNodeByValueFromSplayTree(), DeleteNodeFromSplayTree(), GetNextKeyInSplayTree(), GetNextValueInSplayTree(), GetValueFromSplayTree(), RemoveNodeByValueFromSplayTree(), and RemoveNodeFromSplayTree().
| static int SplayTreeToNodeArray | ( | NodeInfo * | node, | |
| const void * | nodes | |||
| ) | [static] |
Definition at line 265 of file splay-tree.c.
Referenced by BalanceSplayTree().
1.6.1