tag_offset,
tag;
+ SplayTreeInfo
+ *exif_resources;
+
ssize_t
all,
id,
level=0;
entry=0;
tag_offset=0;
- for (i=0; i < 1024; i++)
+ exif_resources=NewSplayTree((int (*)(const void *,const void *)) NULL,
+ (void *(*)(void *)) NULL,(void *(*)(void *)) NULL);
+ do
{
/*
If there is anything on the stack then pop it off.
components;
q=(unsigned char *) (directory+(12*entry)+2);
+ if (GetValueFromSplayTree(exif_resources,q) == q)
+ break;
+ (void) AddValueToSplayTree(exif_resources,q,q);
tag_value=(ssize_t) ((int) ReadPropertyShort(endian,q)+tag_offset);
format=(size_t) ((int) ReadPropertyShort(endian,q+2));
if (format >= (sizeof(tag_bytes)/sizeof(*tag_bytes)))
break;
}
}
- if (level <= 0)
- break;
- }
+ } while (level > 0);
+ exif_resources=DestroySplayTree(exif_resources);
return(status);
}