dpx.orientation.timestamp);
value=GetDPXProperty(image_info,image,"dpx:orientation.device");
if (value != (const char *) NULL)
- (void) strncpy(dpx.orientation.device,value,
- sizeof(dpx.orientation.device));
+ (void) strncpy(dpx.orientation.device,value,sizeof(dpx.orientation.device));
offset+=WriteBlob(image,sizeof(dpx.orientation.device),(unsigned char *)
dpx.orientation.device);
+ value=GetDPXProperty(image_info,image,"dpx:orientation.serial");
+ if (value != (const char *) NULL)
+ (void) strncpy(dpx.orientation.serial,value,sizeof(dpx.orientation.serial));
offset+=WriteBlob(image,sizeof(dpx.orientation.serial),(unsigned char *)
dpx.orientation.serial);
for (i=0; i < 4; i++)
% whenever a value object is added to the splay-tree.
%
*/
+
+static void *GetFirstSplayTreeNode(SplayTreeInfo *splay_tree)
+{
+ register NodeInfo
+ *node;
+
+ node=splay_tree->root;
+ if (splay_tree->root == (NodeInfo *) NULL)
+ return((NodeInfo *) NULL);
+ while (node->left != (NodeInfo *) NULL)
+ node=node->left;
+ return(node->key);
+}
+
MagickExport SplayTreeInfo *CloneSplayTree(SplayTreeInfo *splay_tree,
void *(*clone_key)(void *),void *(*clone_value)(void *))
{
+ register NodeInfo
+ *next,
+ *node;
+
SplayTreeInfo
*clone_tree;
clone_tree=NewSplayTree(splay_tree->compare,splay_tree->relinquish_key,
splay_tree->relinquish_value);
LockSemaphoreInfo(splay_tree->semaphore);
- if (splay_tree->root != (NodeInfo *) NULL)
+ if (splay_tree->root == (NodeInfo *) NULL)
{
- register NodeInfo
- *active,
- *next,
- *node;
-
- void
- *key,
- *value;
-
- key=splay_tree->root->key;
- if ((clone_key != (void *(*)(void *)) NULL) && (key != (void *) NULL))
- key=clone_key(key);
- value=splay_tree->root->value;
- if ((clone_value != (void *(*)(void *)) NULL) && (value != (void *) NULL))
- value=clone_value(value);
- (void) AddValueToSplayTree(clone_tree,key,value);
- for (node=splay_tree->root; node != (NodeInfo *) NULL; )
+ UnlockSemaphoreInfo(splay_tree->semaphore);
+ return(clone_tree);
+ }
+ next=(NodeInfo *) GetFirstSplayTreeNode(splay_tree);
+ while (next != (NodeInfo *) NULL)
+ {
+ SplaySplayTree(splay_tree,next);
+ (void) AddValueToSplayTree(clone_tree,clone_key(splay_tree->root->key),
+ clone_value(splay_tree->root->value));
+ next=(NodeInfo *) NULL;
+ node=splay_tree->root->right;
+ if (node != (NodeInfo *) NULL)
{
- active=node;
- for (node=(NodeInfo *) NULL; active != (NodeInfo *) NULL; )
- {
- next=(NodeInfo *) NULL;
- if (active->left != (NodeInfo *) NULL)
- {
- next=node;
- key=active->left->key;
- if ((clone_key != (void *(*)(void *)) NULL) &&
- (key != (void *) NULL))
- key=clone_key(key);
- value=active->left->value;
- if ((clone_value != (void *(*)(void *)) NULL) &&
- (value != (void *) NULL))
- value=clone_value(value);
- (void) AddValueToSplayTree(clone_tree,key,value);
- node=active->left;
- }
- if (active->right != (NodeInfo *) NULL)
- {
- next=node;
- key=active->right->key;
- if ((clone_key != (void *(*)(void *)) NULL) &&
- (key != (void *) NULL))
- key=clone_key(key);
- value=active->right->value;
- if ((clone_value != (void *(*)(void *)) NULL) &&
- (value != (void *) NULL))
- value=clone_value(value);
- (void) AddValueToSplayTree(clone_tree,key,value);
- node=active->right;
- }
- active=next;
- }
+ while (node->left != (NodeInfo *) NULL)
+ node=node->left;
+ next=(NodeInfo *) node->key;
}
- }
+ }
UnlockSemaphoreInfo(splay_tree->semaphore);
return(clone_tree);
}
% o value: the value.
%
*/
-
-static void *GetFirstSplayTreeNode(SplayTreeInfo *splay_tree)
-{
- register NodeInfo
- *node;
-
- node=splay_tree->root;
- if (splay_tree->root == (NodeInfo *) NULL)
- return((NodeInfo *) NULL);
- while (node->left != (NodeInfo *) NULL)
- node=node->left;
- return(node->key);
-}
-
MagickExport MagickBooleanType DeleteNodeByValueFromSplayTree(
SplayTreeInfo *splay_tree,const void *value)
{