|
|
|
@ -300,18 +300,18 @@ void printIFD(Exiv2::BasicIo& io, std::ostream& out, Exiv2::PrintStructureOption
|
|
|
|
|
: is8ByteType(type) ? 8
|
|
|
|
|
: 1;
|
|
|
|
|
|
|
|
|
|
Exiv2::DataBuf buf(size*count + pad); // allocate a buffer
|
|
|
|
|
Exiv2::DataBuf buf(size * count + pad);
|
|
|
|
|
|
|
|
|
|
// big data? Use 'data' as pointer to real data
|
|
|
|
|
if ( count*size > 8 ) // read into buffer
|
|
|
|
|
{
|
|
|
|
|
size_t restore = io.tell(); // save
|
|
|
|
|
io.seek(data, Exiv2::BasicIo::beg); // position
|
|
|
|
|
io.read(buf.pData_,count*size); // read
|
|
|
|
|
io.read(buf.pData_, count * size); // read
|
|
|
|
|
io.seek(restore, Exiv2::BasicIo::beg); // restore
|
|
|
|
|
}
|
|
|
|
|
else // use 'data' as data :)
|
|
|
|
|
std::memcpy(buf.pData_, &data, 8); // copy data
|
|
|
|
|
std::memcpy(buf.pData_, &data, count * size); // copy data
|
|
|
|
|
|
|
|
|
|
if ( bPrint )
|
|
|
|
|
{
|
|
|
|
|