|
MagickCore
6.7.5
|
#include "MagickCore/studio.h"#include "MagickCore/exception.h"#include "MagickCore/exception-private.h"#include "MagickCore/log.h"#include "MagickCore/memory_.h"#include "MagickCore/splay-tree.h"#include "MagickCore/semaphore.h"#include "MagickCore/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 size_t low, const size_t high) |
| static int | SplayTreeToNodeArray (NodeInfo *node, const void *nodes) |
| static void | BalanceSplayTree (SplayTreeInfo *splay_tree) |
| static void * | GetFirstSplayTreeNode (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) |
| 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 const void * | GetNextKeyInSplayTree (SplayTreeInfo *splay_tree) |
| MagickExport const void * | GetNextValueInSplayTree (SplayTreeInfo *splay_tree) |
| MagickExport const void * | GetValueFromSplayTree (SplayTreeInfo *splay_tree, const void *key) |
| MagickExport size_t | 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 size_t 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 151 of file splay-tree.c.
References LockSemaphoreInfo(), _SplayTreeInfo::semaphore, SplaySplayTree(), _SplayTreeInfo::root, _SplayTreeInfo::compare, _NodeInfo::key, _SplayTreeInfo::relinquish_value, _NodeInfo::value, _SplayTreeInfo::relinquish_key, UnlockSemaphoreInfo(), MagickTrue, AcquireMagickMemory(), MagickFalse, _NodeInfo::left, _NodeInfo::right, _SplayTreeInfo::key, and _SplayTreeInfo::nodes.
Referenced by SetImageArtifact(), LoadCoderList(), LoadCoderLists(), FxChannelStatistics(), FxGetSymbol(), FxEvaluateSubexpression(), LoadLocaleList(), InitializeMagickList(), RegisterMagickInfo(), SetImageOption(), SetImageProfile(), GetEXIFProperty(), GetXMPProperty(), GetMagickProperty(), SetImageProperty(), SetImageRegistry(), AcquireUniqueFileResource(), CloneSplayTree(), LoadTypeList(), and GetXMLTreeAttributes().
| static void BalanceSplayTree | ( | SplayTreeInfo * | splay_tree | ) | [static] |
Definition at line 277 of file splay-tree.c.
References _SplayTreeInfo::nodes, _SplayTreeInfo::balance, MagickFalse, AcquireQuantumMemory(), ThrowFatalException, ResourceLimitFatalError, IterateOverSplayTree(), SplayTreeToNodeArray(), _SplayTreeInfo::root, LinkSplayTreeNodes(), and RelinquishMagickMemory().
Referenced by SplaySplayTree().
| MagickExport SplayTreeInfo* CloneSplayTree | ( | SplayTreeInfo * | splay_tree, |
| void *(*)(void *) | clone_key, | ||
| void *(*)(void *) | clone_value | ||
| ) |
Definition at line 343 of file splay-tree.c.
References _SplayTreeInfo::signature, MagickSignature, _SplayTreeInfo::debug, MagickFalse, LogMagickEvent(), TraceEvent, GetMagickModule, NewSplayTree(), _SplayTreeInfo::compare, _SplayTreeInfo::relinquish_key, _SplayTreeInfo::relinquish_value, LockSemaphoreInfo(), _SplayTreeInfo::semaphore, _SplayTreeInfo::root, UnlockSemaphoreInfo(), GetFirstSplayTreeNode(), SplaySplayTree(), AddValueToSplayTree(), _NodeInfo::key, _NodeInfo::value, _NodeInfo::right, and _NodeInfo::left.
Referenced by CloneImageArtifacts(), CloneImageOptions(), CloneImageProfiles(), and CloneImageProperties().
| MagickExport int CompareSplayTreeString | ( | const void * | target, |
| const void * | source | ||
| ) |
Definition at line 409 of file splay-tree.c.
References LocaleCompare().
Referenced by SetImageArtifact(), LoadCoderList(), LoadCoderLists(), AcquireFxInfo(), LoadLocaleList(), InitializeMagickList(), SetImageOption(), SetImageProfile(), GetXMPProperty(), GetMagickProperty(), SetImageProperty(), SetImageRegistry(), AcquireUniqueFileResource(), and LoadTypeList().
| MagickExport int CompareSplayTreeStringInfo | ( | const void * | target, |
| const void * | source | ||
| ) |
Definition at line 445 of file splay-tree.c.
References CompareStringInfo().
| MagickExport MagickBooleanType DeleteNodeByValueFromSplayTree | ( | SplayTreeInfo * | splay_tree, |
| const void * | value | ||
| ) |
Definition at line 483 of file splay-tree.c.
References _SplayTreeInfo::signature, MagickSignature, _SplayTreeInfo::debug, MagickFalse, LogMagickEvent(), TraceEvent, GetMagickModule, LockSemaphoreInfo(), _SplayTreeInfo::semaphore, _SplayTreeInfo::root, UnlockSemaphoreInfo(), GetFirstSplayTreeNode(), SplaySplayTree(), _NodeInfo::right, _NodeInfo::left, _NodeInfo::key, _NodeInfo::value, _SplayTreeInfo::key, _SplayTreeInfo::compare, _SplayTreeInfo::relinquish_value, _SplayTreeInfo::relinquish_key, RelinquishMagickMemory(), _SplayTreeInfo::nodes, and MagickTrue.
Referenced by UnregisterMagickInfo().
| MagickExport MagickBooleanType DeleteNodeFromSplayTree | ( | SplayTreeInfo * | splay_tree, |
| const void * | key | ||
| ) |
Definition at line 598 of file splay-tree.c.
References _SplayTreeInfo::signature, MagickSignature, _SplayTreeInfo::debug, MagickFalse, LogMagickEvent(), TraceEvent, GetMagickModule, _SplayTreeInfo::root, LockSemaphoreInfo(), _SplayTreeInfo::semaphore, SplaySplayTree(), _SplayTreeInfo::key, _SplayTreeInfo::compare, _NodeInfo::key, UnlockSemaphoreInfo(), _NodeInfo::left, _NodeInfo::right, _SplayTreeInfo::relinquish_value, _NodeInfo::value, _SplayTreeInfo::relinquish_key, RelinquishMagickMemory(), _SplayTreeInfo::nodes, and MagickTrue.
Referenced by DeleteImageArtifact(), FxChannelStatistics(), FxEvaluateSubexpression(), DeleteImageOption(), DeleteImageProfile(), DeleteImageProperty(), DeleteImageRegistry(), and RelinquishUniqueFileResource().
| MagickExport SplayTreeInfo* DestroySplayTree | ( | SplayTreeInfo * | splay_tree | ) |
Definition at line 677 of file splay-tree.c.
References LockSemaphoreInfo(), _SplayTreeInfo::semaphore, _SplayTreeInfo::root, _SplayTreeInfo::relinquish_value, _NodeInfo::value, _SplayTreeInfo::relinquish_key, _NodeInfo::key, _NodeInfo::left, _NodeInfo::right, RelinquishMagickMemory(), _SplayTreeInfo::signature, MagickSignature, UnlockSemaphoreInfo(), and DestroySemaphoreInfo().
Referenced by DestroyImageArtifacts(), CoderComponentTerminus(), DestroyFxInfo(), MagickComponentTerminus(), DestroyImageOptions(), DestroyImageProfiles(), DestroyImageProperties(), GetEXIFProperty(), RegistryComponentTerminus(), ResourceComponentTerminus(), and TypeComponentTerminus().
| static void* GetFirstSplayTreeNode | ( | SplayTreeInfo * | splay_tree | ) | [static] |
Definition at line 330 of file splay-tree.c.
References _SplayTreeInfo::root, _NodeInfo::left, and _NodeInfo::key.
Referenced by CloneSplayTree(), DeleteNodeByValueFromSplayTree(), RemoveNodeByValueFromSplayTree(), and ResetSplayTreeIterator().
| MagickExport const void* GetNextKeyInSplayTree | ( | SplayTreeInfo * | splay_tree | ) |
Definition at line 764 of file splay-tree.c.
References _SplayTreeInfo::signature, MagickSignature, _SplayTreeInfo::debug, MagickFalse, LogMagickEvent(), TraceEvent, GetMagickModule, _SplayTreeInfo::root, _SplayTreeInfo::next, LockSemaphoreInfo(), _SplayTreeInfo::semaphore, SplaySplayTree(), _NodeInfo::right, _NodeInfo::left, _NodeInfo::key, and UnlockSemaphoreInfo().
Referenced by GetNextImageArtifact(), GetNextImageOption(), GetNextImageProfile(), GetNextImageProperty(), GetNextImageRegistry(), AsynchronousResourceComponentTerminus(), and RelinquishUniqueFileResource().
| MagickExport const void* GetNextValueInSplayTree | ( | SplayTreeInfo * | splay_tree | ) |
Definition at line 818 of file splay-tree.c.
References _SplayTreeInfo::signature, MagickSignature, _SplayTreeInfo::debug, MagickFalse, LogMagickEvent(), TraceEvent, GetMagickModule, _SplayTreeInfo::root, _SplayTreeInfo::next, LockSemaphoreInfo(), _SplayTreeInfo::semaphore, SplaySplayTree(), _NodeInfo::right, _NodeInfo::left, _NodeInfo::key, _NodeInfo::value, and UnlockSemaphoreInfo().
Referenced by GetImageArtifact(), GetCoderInfo(), GetCoderInfoList(), GetCoderList(), GetLocaleInfo_(), GetLocaleInfoList(), GetLocaleList(), GetImageMagick(), GetMagickInfo(), GetMagickInfoList(), GetMagickList(), UnregisterMagickInfo(), GetImageProperty(), GetTypeInfo(), GetTypeInfoByFamily(), GetTypeInfoList(), and GetTypeList().
| MagickExport size_t GetNumberOfNodesInSplayTree | ( | const SplayTreeInfo * | splay_tree | ) |
Definition at line 930 of file splay-tree.c.
References _SplayTreeInfo::signature, MagickSignature, _SplayTreeInfo::debug, MagickFalse, LogMagickEvent(), TraceEvent, GetMagickModule, and _SplayTreeInfo::nodes.
Referenced by GetCoderInfo(), GetCoderInfoList(), GetCoderList(), GetLocaleInfo_(), GetLocaleInfoList(), GetLocaleList(), LoadLocaleLists(), GetMagickInfoList(), GetMagickList(), UnregisterMagickInfo(), GetTypeInfo(), GetTypeInfoList(), GetTypeList(), and LoadTypeLists().
| MagickExport const void* GetValueFromSplayTree | ( | SplayTreeInfo * | splay_tree, |
| const void * | key | ||
| ) |
Definition at line 875 of file splay-tree.c.
References _SplayTreeInfo::signature, MagickSignature, _SplayTreeInfo::debug, MagickFalse, LogMagickEvent(), TraceEvent, GetMagickModule, _SplayTreeInfo::root, LockSemaphoreInfo(), _SplayTreeInfo::semaphore, SplaySplayTree(), _SplayTreeInfo::compare, _NodeInfo::key, UnlockSemaphoreInfo(), and _NodeInfo::value.
Referenced by GetImageArtifact(), GetCoderInfo(), FxChannelStatistics(), FxGetSymbol(), GetLocaleInfo_(), GetImageOption(), GetImageProfile(), GetEXIFProperty(), GetImageProperty(), GetImageRegistry(), and GetTypeInfo().
| static int IterateOverSplayTree | ( | SplayTreeInfo * | splay_tree, |
| int(*)(NodeInfo *, const void *) | method, | ||
| const void * | value | ||
| ) | [static] |
Definition at line 967 of file splay-tree.c.
References _SplayTreeInfo::root, AcquireQuantumMemory(), _SplayTreeInfo::nodes, ThrowFatalException, ResourceLimitFatalError, MagickFalse, _NodeInfo::left, _NodeInfo::right, MagickTrue, and RelinquishMagickMemory().
Referenced by BalanceSplayTree().
| static NodeInfo* LinkSplayTreeNodes | ( | NodeInfo ** | nodes, |
| const size_t | low, | ||
| const size_t | high | ||
| ) | [static] |
Definition at line 244 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 1095 of file splay-tree.c.
References AcquireMagickMemory(), ThrowFatalException, ResourceLimitFatalError, ResetMagickMemory(), _SplayTreeInfo::root, _SplayTreeInfo::compare, _SplayTreeInfo::relinquish_key, _SplayTreeInfo::relinquish_value, _SplayTreeInfo::balance, MagickFalse, _SplayTreeInfo::key, _SplayTreeInfo::next, _SplayTreeInfo::nodes, _SplayTreeInfo::debug, IsEventLogging(), _SplayTreeInfo::semaphore, AllocateSemaphoreInfo(), _SplayTreeInfo::signature, and MagickSignature.
Referenced by SetImageArtifact(), LoadCoderList(), LoadCoderLists(), AcquireFxInfo(), LoadLocaleList(), InitializeMagickList(), SetImageOption(), SetImageProfile(), GetEXIFProperty(), GetXMPProperty(), GetMagickProperty(), SetImageProperty(), SetImageRegistry(), AcquireUniqueFileResource(), CloneSplayTree(), and LoadTypeList().
| MagickExport void* RemoveNodeByValueFromSplayTree | ( | SplayTreeInfo * | splay_tree, |
| const void * | value | ||
| ) |
Definition at line 1146 of file splay-tree.c.
References _SplayTreeInfo::signature, MagickSignature, _SplayTreeInfo::debug, MagickFalse, LogMagickEvent(), TraceEvent, GetMagickModule, _SplayTreeInfo::root, LockSemaphoreInfo(), _SplayTreeInfo::semaphore, GetFirstSplayTreeNode(), SplaySplayTree(), _NodeInfo::right, _NodeInfo::left, _NodeInfo::key, _NodeInfo::value, _SplayTreeInfo::key, _SplayTreeInfo::compare, UnlockSemaphoreInfo(), _SplayTreeInfo::relinquish_value, RelinquishMagickMemory(), and _SplayTreeInfo::nodes.
| MagickExport void* RemoveNodeFromSplayTree | ( | SplayTreeInfo * | splay_tree, |
| const void * | key | ||
| ) |
Definition at line 1255 of file splay-tree.c.
References _SplayTreeInfo::signature, MagickSignature, _SplayTreeInfo::debug, MagickFalse, LogMagickEvent(), TraceEvent, GetMagickModule, _SplayTreeInfo::root, LockSemaphoreInfo(), _SplayTreeInfo::semaphore, SplaySplayTree(), _SplayTreeInfo::key, _SplayTreeInfo::compare, _NodeInfo::key, UnlockSemaphoreInfo(), _NodeInfo::left, _NodeInfo::right, _NodeInfo::value, _SplayTreeInfo::relinquish_key, RelinquishMagickMemory(), and _SplayTreeInfo::nodes.
Referenced by RemoveImageArtifact(), RemoveImageOption(), RemoveImageProfile(), RemoveImageProperty(), and RemoveImageRegistry().
| MagickExport void ResetSplayTree | ( | SplayTreeInfo * | splay_tree | ) |
Definition at line 1336 of file splay-tree.c.
References _SplayTreeInfo::signature, MagickSignature, _SplayTreeInfo::debug, MagickFalse, LogMagickEvent(), TraceEvent, GetMagickModule, LockSemaphoreInfo(), _SplayTreeInfo::semaphore, _SplayTreeInfo::root, _SplayTreeInfo::relinquish_value, _NodeInfo::value, _SplayTreeInfo::relinquish_key, _NodeInfo::key, _NodeInfo::left, _NodeInfo::right, RelinquishMagickMemory(), _SplayTreeInfo::key, _SplayTreeInfo::next, _SplayTreeInfo::nodes, _SplayTreeInfo::balance, and UnlockSemaphoreInfo().
Referenced by ResetImageOptions().
| MagickExport void ResetSplayTreeIterator | ( | SplayTreeInfo * | splay_tree | ) |
Definition at line 1428 of file splay-tree.c.
References _SplayTreeInfo::signature, MagickSignature, _SplayTreeInfo::debug, MagickFalse, LogMagickEvent(), TraceEvent, GetMagickModule, LockSemaphoreInfo(), _SplayTreeInfo::semaphore, _SplayTreeInfo::next, GetFirstSplayTreeNode(), and UnlockSemaphoreInfo().
Referenced by GetImageArtifact(), ResetImageArtifactIterator(), GetCoderInfo(), GetCoderInfoList(), GetCoderList(), GetLocaleInfo_(), GetLocaleInfoList(), GetImageMagick(), GetMagickInfo(), GetMagickInfoList(), GetMagickList(), UnregisterMagickInfo(), ResetImageOptionIterator(), ResetImageProfileIterator(), GetImageProperty(), ResetImagePropertyIterator(), ResetImageRegistryIterator(), AsynchronousResourceComponentTerminus(), RelinquishUniqueFileResource(), GetTypeInfo(), GetTypeInfoByFamily(), GetTypeInfoList(), and GetTypeList().
| static NodeInfo* Splay | ( | SplayTreeInfo * | splay_tree, |
| const size_t | depth, | ||
| const void * | key, | ||
| NodeInfo ** | node, | ||
| NodeInfo ** | parent, | ||
| NodeInfo ** | grandparent | ||
| ) | [static] |
Definition at line 1471 of file splay-tree.c.
References _SplayTreeInfo::compare, _NodeInfo::key, _NodeInfo::left, _NodeInfo::right, MaxSplayTreeDepth, _SplayTreeInfo::balance, MagickTrue, and MagickFalse.
Referenced by SplaySplayTree().
| static void SplaySplayTree | ( | SplayTreeInfo * | splay_tree, |
| const void * | key | ||
| ) | [static] |
Definition at line 1562 of file splay-tree.c.
References _SplayTreeInfo::root, _SplayTreeInfo::key, _SplayTreeInfo::compare, _NodeInfo::key, Splay(), _SplayTreeInfo::balance, MagickFalse, BalanceSplayTree(), ThrowFatalException, and ResourceLimitFatalError.
Referenced by AddValueToSplayTree(), CloneSplayTree(), DeleteNodeByValueFromSplayTree(), DeleteNodeFromSplayTree(), GetNextKeyInSplayTree(), GetNextValueInSplayTree(), GetValueFromSplayTree(), RemoveNodeByValueFromSplayTree(), and RemoveNodeFromSplayTree().
| static int SplayTreeToNodeArray | ( | NodeInfo * | node, |
| const void * | nodes | ||
| ) | [static] |
Definition at line 266 of file splay-tree.c.
Referenced by BalanceSplayTree().