about summary refs log tree commit diff
diff options
context:
space:
mode:
authorgiraffedata <giraffedata@9d0c8265-081b-0410-96cb-a4ca84ce46f8>2023-03-21 20:19:35 +0000
committergiraffedata <giraffedata@9d0c8265-081b-0410-96cb-a4ca84ce46f8>2023-03-21 20:19:35 +0000
commitbb9773adf0a4d066410ca60a1e5edf3e0d6ad7c9 (patch)
tree33457ff0c97b0a05e38616641d3bcb361781d548
parent2dc6063ea82512a47e5de492bb80522502925454 (diff)
downloadnetpbm-mirror-bb9773adf0a4d066410ca60a1e5edf3e0d6ad7c9.tar.gz
netpbm-mirror-bb9773adf0a4d066410ca60a1e5edf3e0d6ad7c9.tar.xz
netpbm-mirror-bb9773adf0a4d066410ca60a1e5edf3e0d6ad7c9.zip
cleanup
git-svn-id: http://svn.code.sf.net/p/netpbm/code/trunk@4524 9d0c8265-081b-0410-96cb-a4ca84ce46f8
-rw-r--r--converter/other/exif.c23
-rw-r--r--converter/other/exif.h2
2 files changed, 11 insertions, 14 deletions
diff --git a/converter/other/exif.c b/converter/other/exif.c
index 59a727fe..7756ce55 100644
--- a/converter/other/exif.c
+++ b/converter/other/exif.c
@@ -491,8 +491,6 @@ processDirEntry(const unsigned char *  const dirEntry,
                 ByteOrder              const byteOrder,
                 bool                   const wantTagTrace,
                 exif_ifd *             const ifdP,
-                unsigned int *         const thumbnailOffsetP,
-                unsigned int *         const thumbnailSizeP,
                 const char **          const errorP) {
 
     int const tag        = get16u(&dirEntry[0], byteOrder);
@@ -745,12 +743,12 @@ processDirEntry(const unsigned char *  const dirEntry,
         break;
 
     case TAG_THUMBNAIL_OFFSET:
-        *thumbnailOffsetP = (unsigned int)
+        ifdP->thumbnailOffset = (unsigned int)
             numericValue(valuePtr, format, byteOrder);
         break;
 
     case TAG_THUMBNAIL_LENGTH:
-        *thumbnailSizeP = (unsigned int)
+        ifdP->thumbnailLength = (unsigned int)
             numericValue(valuePtr, format, byteOrder);
         break;
 
@@ -795,8 +793,6 @@ processIfd(const unsigned char *  const exifData,
     unsigned int const numDirEntries = get16u(&dirStart[0], byteOrder);
 
     unsigned int de;
-    unsigned int thumbnailOffset;
-    unsigned int thumbnailSize;
 
     *errorP = NULL;  /* initial value */
 
@@ -805,14 +801,13 @@ processIfd(const unsigned char *  const exifData,
     if (wantTagTrace)
         pm_message("Directory with %u entries", numDirEntries);
 
-    thumbnailOffset = 0;      /* initial value */
-    thumbnailSize   = 0;      /* initial value */
+    ifdP->thumbnailOffset = 0;      /* initial value */
+    ifdP->thumbnailLength = 0;      /* initial value */
 
     for (de = 0; de < numDirEntries && !*errorP; ++de) {
         const char * error;
         processDirEntry(DIR_ENTRY_ADDR(dirStart, de), exifData, exifLength,
                         byteOrder, wantTagTrace, ifdP,
-                        &thumbnailOffset, &thumbnailSize,
                         &error);
 
         if (error) {
@@ -859,14 +854,14 @@ processIfd(const unsigned char *  const exifData,
         }
     }
 
-    if (thumbnailSize && thumbnailOffset) {
-        if (thumbnailSize + thumbnailOffset <= exifLength) {
+    if (ifdP->thumbnailLength && ifdP->thumbnailOffset) {
+        if (ifdP->thumbnailOffset + ifdP->thumbnailLength <= exifLength) {
             /* The thumbnail pointer appears to be valid.  Store it. */
-            ifdP->thumbnail = exifData + thumbnailOffset;
-            ifdP->thumbnailSize = thumbnailSize;
+            ifdP->thumbnail     = exifData + ifdP->thumbnailOffset;
+            ifdP->thumbnailSize = ifdP->thumbnailLength;
 
             if (wantTagTrace) {
-                fprintf(stderr, "Thumbnail size: %u bytes\n", thumbnailSize);
+                pm_message("Thumbnail size: %u bytes", ifdP->thumbnailSize);
             }
         }
     }
diff --git a/converter/other/exif.h b/converter/other/exif.h
index d06a1185..c2e6722d 100644
--- a/converter/other/exif.h
+++ b/converter/other/exif.h
@@ -40,6 +40,8 @@ typedef struct {
     int   isoEquivalent;
     int   compressionLevel;
     char  comments[MAX_COMMENT];
+    unsigned int thumbnailOffset;
+    unsigned int thumbnailLength;
 
     const unsigned char * thumbnail;  /* Pointer at the thumbnail */
     unsigned thumbnailSize;     /* Size of thumbnail. */