[SCM] exiv2 packaging branch, master, updated. debian/0.25-3.1-3734-gdcbc29a

Maximiliano Curia maxy at moszumanska.debian.org
Thu Jul 13 17:36:06 UTC 2017


Gitweb-URL: http://git.debian.org/?p=pkg-kde/kde-extras/exiv2.git;a=commitdiff;h=59643bd

The following commit has been merged in the master branch:
commit 59643bd4e1eca750e93c46d6b7890e5fa87d4b2c
Author: Andreas Huggel <ahuggel at gmx.net>
Date:   Sun Mar 7 02:52:15 2004 +0000

    Fixed IFD to update internal offsets on copy()
---
 src/ifd.cpp | 19 ++++++++++---------
 src/ifd.hpp | 14 +++++++-------
 2 files changed, 17 insertions(+), 16 deletions(-)

diff --git a/src/ifd.cpp b/src/ifd.cpp
index cea72f1..f85fac2 100644
--- a/src/ifd.cpp
+++ b/src/ifd.cpp
@@ -20,14 +20,14 @@
  */
 /*
   File:      ifd.cpp
-  Version:   $Name:  $ $Revision: 1.2 $
+  Version:   $Name:  $ $Revision: 1.3 $
   Author(s): Andreas Huggel (ahu) <ahuggel at gmx.net>
   History:   26-Jan-04, ahu: created
              11-Feb-04, ahu: isolated as a component
  */
 // *****************************************************************************
 #include "rcsid.hpp"
-EXIV2_RCSID("@(#) $Name:  $ $Revision: 1.2 $ $RCSfile: ifd.cpp,v $")
+EXIV2_RCSID("@(#) $Name:  $ $Revision: 1.3 $ $RCSfile: ifd.cpp,v $")
 
 // *****************************************************************************
 // included header files
@@ -271,9 +271,9 @@ namespace Exif {
         return rc;
     } // Ifd::readSubIfd
 
-    long Ifd::copy(char* buf, ByteOrder byteOrder, long offset) const
+    long Ifd::copy(char* buf, ByteOrder byteOrder, long offset)
     {
-        if (offset == 0) offset = offset_;
+        if (offset != 0) offset_ = offset;
 
         // Add the number of entries to the data buffer
         us2Data(buf, entries_.size(), byteOrder);
@@ -281,16 +281,17 @@ namespace Exif {
 
         // Add all directory entries to the data buffer
         long dataSize = 0;
-        const const_iterator b = entries_.begin();
-        const const_iterator e = entries_.end();
-        const_iterator i = b;
+        const iterator b = entries_.begin();
+        const iterator e = entries_.end();
+        iterator i = b;
         for (; i != e; ++i) {
             us2Data(buf+o, i->tag(), byteOrder);
             us2Data(buf+o+2, i->type(), byteOrder);
             ul2Data(buf+o+4, i->count(), byteOrder);
             if (i->size() > 4) {
-                // Calculate offset, data immediately follows the IFD
-                ul2Data(buf+o+8, offset + size() + dataSize, byteOrder);
+                // Set the offset of the entry, data immediately follows the IFD
+                i->setOffset(size() + dataSize);
+                ul2Data(buf+o+8, offset_ + i->offset(), byteOrder);
                 dataSize += i->size();
             }
             else {
diff --git a/src/ifd.hpp b/src/ifd.hpp
index 249f97d..a625e7c 100644
--- a/src/ifd.hpp
+++ b/src/ifd.hpp
@@ -21,7 +21,7 @@
 /*!
   @file    ifd.hpp
   @brief   Encoding and decoding of IFD (Image File Directory) data
-  @version $Name:  $ $Revision: 1.4 $
+  @version $Name:  $ $Revision: 1.5 $
   @author  Andreas Huggel (ahu)
            <a href="mailto:ahuggel at gmx.net">ahuggel at gmx.net</a>
   @date    09-Jan-04, ahu: created
@@ -137,7 +137,7 @@ namespace Exif {
                  bytes unless it is 0.
          */
         long size() const { return size_; }
-        //! Return the offset from the start of the IFD
+        //! Return the offset from the start of the IFD to the data of the entry
         uint32 offset() const { return offset_; }
         /*!
           @brief Return a pointer to the data area. Do not attempt to write
@@ -288,8 +288,8 @@ namespace Exif {
             Ifd& dest, const char* buf, ByteOrder byteOrder, uint16 tag
         ) const;
         /*!
-          @brief Copy the IFD to a data array, return the number of bytes
-                 written. 
+          @brief Copy the IFD to a data array, update the offsets of the IFD and
+                 all its entries, return the number of bytes written.
 
                  First the number of IFD entries is written (2 bytes), followed
                  by all directory entries: tag (2), type (2), number of data
@@ -310,14 +310,14 @@ namespace Exif {
                  data array. The IFD offsets will be adjusted as necessary. If
                  not given, then it is assumed that the IFD will remain at its
                  original position, i.e., the offset of the IFD will be used.
-          @return       Returns the number of characters written.
+          @return Returns the number of characters written.
          */
-        long copy(char* buf, ByteOrder byteOrder, long offset =0) const;
+        long copy(char* buf, ByteOrder byteOrder, long offset =0);
         //! @name Accessors
         //@{
         //! Ifd id of the IFD
         IfdId ifdId() const { return ifdId_; }
-        //! Offset of the IFD from SOI
+        //! Offset of the IFD from the start of the TIFF header
         long offset() const { return offset_; }
         //! Get the offset to the next IFD from the start of the TIFF header
         long next() const { return next_; }

-- 
exiv2 packaging



More information about the pkg-kde-commits mailing list