Branch Coverage

blib/lib/Image/ExifTool/WriteExif.pl
Criterion Covered Total %
branch 579 976 59.3


line true false branch
64 1 6 @a ? :
75 0 1 unless @rows
77 0 1 unless @cols
84 0 2 unless @cols == $ny
88 0 4 unless defined $c
103 124 6089 if (not $format or $format eq 1)
104 124 0 if ($tagInfo->{'Groups'}{'0'} eq 'MakerNotes') { }
122 0 13 if ($val =~ /[\x80-\xff]/) { }
151 0 0 if ($proc ne \&Image::ExifTool::Exif::ProcessExif and $tagInfo->{'Name'} =~ /Text/ or $proc eq \&Image::ExifTool::ProcessBinaryData or $tagInfo->{'PossiblePreview'} and $dirLen > 6 and substr($$dataPt, $dirStart, 3) eq "\377\330\377")
160 20 0 if (defined $loc)
187 20 0 if (defined $rtnValue and length $rtnValue)
189 2 18 if ($newTool->{'PREVIEW_INFO'})
195 8 12 if ($loc)
201 0 8 if ($dirInfo->{'Parent'} eq "IFD0" and $hdr =~ /^(PENTAX |SAMSUNG)\0/)
204 0 0 if ($et->{'Model'} =~ /\b(K(-[57mrx]|(10|20|100|110|200)D|2000)|GX(10|20))\b/)
223 17 3 unless ($subdirInfo{'Relative'})
249 0 0 unless $tagID or $index == 0 or $allowZero
251 0 0 if ($entries{$tagID}) { }
275 0 0 unless my $raf = $dirInfo->{'RAF'}
277 0 0 unless defined $dirStart
280 0 0 unless $raf->Seek($offset + $base, 0) and $raf->Read($buff, 2) == 2
282 0 0 unless $numEntries > 1 and $numEntries < 64
284 0 0 unless $raf->Read($buff, $len) == $len
289 0 0 unless $tagID > $lastID or $dirInfo->{'AllowOutOfOrderTags'}
291 0 0 unless $format > 0 and $format <= 13
293 0 0 unless $count > 0
313 0 0 if $format < 1 or $format > 13
316 0 0 if ($size <= 4)
318 0 0 unless ref $tagTablePtr->{$tagID} eq "HASH" and $tagTablePtr->{$tagID}{'FixCount'}
321 0 0 if $offset >= $ifdEnd
338 278 54 if (defined $et->{'TIFF_END'} and $et->{'TIFF_END'} < $end)
358 5 1 if (!defined($vInfo->{'259'}) || $vInfo->{'259'} eq '1' and $vInfo->{'256'} and $vInfo->{'257'} and $vInfo->{'279'} || $vInfo->{'325'})
362 5 0 $vInfo->{'258'} ? :
368 0 5 if $et->{'DOC_NUM'} or $et->{'FILE_TYPE'} ne "TIFF"
369 0 5 unless (@bitsPerSample == $samplesPerPix)
370 0 0 unless ($et->{'FILE_TYPE'} eq "EPS" and @bitsPerSample == 1)
372 0 0 $samplesPerPix eq '1' ? :
377 0 0 if $_ ne $bitsPerSample[0]
378 0 0 if $_ < 1 or $_ > 32
384 1 4 if ($expectedBytes != $totalBytes and not $et->{'TIFF_TYPE'} =~ /^(K25|KDC|MEF|ORF|SRF)$/)
389 1 0 if ($expectedBytes > $totalBytes) { }
391 0 1 unless $errFlag
397 1 0 if (not defined $minor) { }
418 0 0 if ($tagTablePtr->{'VARS'} and $tagTablePtr->{'VARS'}{'MINOR_ERRORS'})
419 0 0 if $minor
422 0 0 if $et->Error($errStr, $minor)
434 0 0 unless $et
442 0 0 unless $raf->Seek($base, 0) and $raf->Read($buff, 8) == 8
443 0 0 unless (&SetByteOrder(substr($buff, 0, 2)) and &Get16u(\$buff, 2) == $magic)
445 0 0 if ($dirInfo->{'IsWriting'}) { }
466 0 0 if ($dirInfo->{'IsWriting'})
471 0 0 unless $newDir
475 0 0 if ($et->{'HTML_DUMP'})
476 0 0 &GetByteOrder() eq 'II' ? :
498 8078 328 unless $et
501 34 294 unless ($dataPt)
523 154 8 unless $name and $dirName eq "MakerNotes" and not $name =~ /^MakerNote/
526 199 129 if $dirName eq "IFD0" or $dirName eq "ExifIFD"
529 256 72 if $tagTablePtr->{'GROUPS'}{'0'} eq "EXIF"
532 116 212 if $dirName =~ /^(IFD0|SubIFD)$/ and not defined $dirInfo->{'Multi'}
533 71 257 if $tagTablePtr->{'GROUPS'}{'0'} eq "MakerNotes"
549 118 258 if ($dirStart < 0 or $dirStart > $dataLen - 2) { }
258 0 elsif ($dirLen >= 2) { }
553 0 258 if $dirStart + $len > $dataLen
556 118 258 if ($mustRead)
557 38 80 if ($raf) { }
0 160 elsif ($dirLen and $dirStart + 4 >= $dataLen) { }
561 0 38 unless ($raf->Seek($offset + $base, 0) and $raf->Read($buff, 2) == 2)
566 0 38 unless ($raf->Read($buf2, $len + 4) >= $len)
580 38 0 if $dataLen == $len + 6 and $dirInfo->{'Multi'} || $buff =~ /\0{4}$/
585 0 0 $et->Options('IgnoreMinorErrors') ? :
590 289 87 if ($dirStart + 4 < $dataLen) { }
593 0 289 if ($dirEnd > $dataLen)
596 0 0 unless $n and defined $rtn
605 118 6 if $tagID < $lastID and $tagID || $tagTablePtr->{'0'}
609 0 289 if ($unsorted and not $inMakerNotes || $et->IsRawType)
627 168 1875 ref $tagTablePtr->{$tagID} eq 'ARRAY' || $tagInfo->{'Condition'} ? :
631 2 51 if ($dirName eq "MakerNotes" and $dirInfo->{'Parent'} =~ /^(ExifIFD|IFD0)$/ and not $et->{'TIFF_TYPE'} =~ /^(ARW|SR2)$/ and not $et->{'LeicaTrailerPos'} and &Image::ExifTool::MakerNotes::FixBase($et, $dirInfo))
639 0 2 if $et->{'FORCE_WRITE'}{'FixBase'}
640 0 0 if ($et->{'TIFF_TYPE'} eq "SRW" and $et->{'Make'} eq "SAMSUNG" and $et->{'Model'} eq "EK-GN120")
648 293 83 if ($mandatory) { }
650 6 287 if ($dirName eq "IFD0" and defined $et->{'JFIFYResolution'})
659 87 206 unless ($numEntries)
661 237 84 unless defined $set{$_}
668 71 305 if ($inMakerNotes) { }
675 5 36 unless $set{$_}
677 0 36 if defined $perm and not $perm
679 0 71 if @newTags > 1
703 0 376 if ($inMakerNotes and $et->{'Model'} eq "Canon EOS 40D")
705 0 0 if ($fmt < 1 or $fmt > 13)
718 5063 2003 if (defined $oldID and $oldID == $newID)
722 4687 376 if ($index < $numEntries) { }
728 0 4687 if ($oldFormat < 1 or $oldFormat > 13 and not $oldFormat == 16 && $et->{'Make'} eq 'Apple' && $inMakerNotes)
733 0 0 if ($dirName eq "MakerNotes" and $et->{'Make'} =~ /KODAK/i && $dirInfo->{'Name'} && $dirInfo->{'Name'} eq 'SubIFD3' || $numEntries == 12 && $et->{'Make'} eq 'SONY' && $index >= 8)
744 0 0 if ($oldFormat == 0 and $index and $oldCount == 0)
747 0 0 if $dirInfo->{'FixBase'}
761 580 4107 if (ref $oldInfo ne "HASH" or $oldInfo->{'Condition'})
769 0 2801 if ($oldCount < 2 and $oldInfo and $oldInfo->{'FixCount'})
770 0 0 unless $offList
773 0 0 if (defined $i and $i < $#$offList)
775 0 0 if $oldCount != $readCount
780 2129 2558 if ($oldSize > 4)
783 0 2129 if ($dirInfo->{'FixOffsets'})
784 0 0 unless $valEnd
788 0 0 unless (defined $valuePtr)
789 0 0 unless ($et->{'DropTags'})
790 0 0 $oldInfo ? :
791 0 0 if $et->Error("Bad $name offset for $tagStr", $inMakerNotes)
799 5 2124 if ($dirInfo->{'EntryBased'} or ref $tagTablePtr->{$oldID} eq 'HASH' and $tagTablePtr->{$oldID}{'EntryBased'}) { }
807 0 2129 if $valuePtr < $dirEnd and $valuePtr + $oldSize > $dirStart
809 226 1903 if ($valuePtr < 0 or $valuePtr + $oldSize > $dataLen)
811 218 8 if ($oldInfo) { }
8 0 elsif (defined $oldInfo) { }
816 8 0 if ($tmpInfo)
821 0 226 unless $tagStr
823 0 226 unless ($raf)
824 0 0 if ($tagStr eq 'PreviewImage') { }
0 0 elsif ($leicaTrailer) { }
826 0 0 if ($raf) { }
828 0 0 if ($oldInfo and $oldInfo->{'ChangeBase'})
847 0 0 unless $oldInfo
853 0 226 if ($oldSize > BINARY_DATA_LIMIT() and $origDirInfo->{'ImageData'} and !defined($oldInfo) || $oldInfo && (!$oldInfo->{'SubDirectory'} || $oldInfo->{'ReadFromRAF'})) { }
226 0 elsif ($raf) { }
0 0 elsif (not $invalidPreview) { }
860 0 0 unless (defined $set{$oldID})
861 0 0 $oldSize & 1 ? :
868 0 226 if (defined $pos)
872 0 0 unless ($success and $oldValue =~ /^(\xff\xd8\xff|(.|.{33})\xd8\xff\xdb)/s)
877 0 226 unless ($success)
878 0 0 if $et->Error("Error reading value for $name entry $index", $inMakerNotes)
882 0 0 if $et->Error("Bad $name offset for $tagStr", $inMakerNotes)
885 0 226 if ($invalidPreview) { }
887 0 0 if ($et->{'FILE_TYPE'} eq 'JPEG') { }
907 2 2127 if ($suspect)
908 2 0 $oldInfo ? :
910 2 0 if ($inMakerNotes) { }
913 0 0 if $et->Error($str, 1)
918 4461 226 unless $readFromFile
920 160 4527 if (defined $oldInfo and not $oldInfo)
926 0 0 if ($mayDelete{$oldID} and $oldInfo and !@newTags || $newTags[0] != $oldID)
928 0 0 if (not $nvHash and $wrongDir)
931 0 0 if $nvHash
933 0 0 if ($nvHash)
941 0 4687 if ($oldFormat == 13 || $oldFormat == 18 and not $oldInfo && $oldInfo->{'SubIFD'})
948 4687 0 if ($oldInfo)
950 0 4687 if ($oldInfo->{'IsOffset'} || $oldInfo->{'SubIFD'} and not $Image::ExifTool::Exif::intFormat{$oldFormName})
956 4 0 if ($oldInfo->{'Drop'} and $et->{'DropTags'} and $oldInfo->{'Drop'} == 1 || $oldInfo->{'Drop'} < $oldSize)
961 289 4394 if ($oldInfo->{'Format'})
964 0 289 unless ($readFormat)
969 0 289 if ($oldInfo->{'FixedSize'})
970 0 0 if $oldInfo->{'FixedSize'}
977 0 4683 if ($oldID <= $lastTagID and not $inMakerNotes || $et->IsRawType)
978 0 0 $oldInfo ? :
979 0 0 if ($oldID == $lastTagID) { }
982 0 0 if defined $set{$oldID}
998 2219 4843 if (not defined $oldID) { }
3197 1646 elsif (not defined $newID) { }
999 376 1843 unless defined $newID
1003 35 3162 if (defined $set{$oldID}) { }
1012 0 1646 if ($unsorted and $isNew)
1013 0 0 if ($isNew > 0 and $hasOldID{$newID})
1018 0 0 if ($isNew < 0 and $hasNewID{$oldID})
1035 2286 4400 $isNew >= 0 ? :
1038 2286 4400 if ($isNew >= 0)
1042 110 70 unless ($curInfo or $addDirs->{$newID})
1047 24 86 if (defined $curInfo and not $curInfo)
1052 396 25 unless $tagInfo->{'TagID'} == $newID
1054 0 25 unless defined $val
1057 24 1 if ($fmt)
1059 0 24 unless defined $val
1062 25 0 if ($curInfo)
1063 21 4 if $curInfo eq $tagInfo
1068 3 21 unless $curInfo
1071 83 27 if ($curInfo and $et->{'NEW_VALUE'}{$curInfo}) { }
1074 26 1 if $isNew > 0
1079 2189 71 if ($curInfo) { }
1 70 elsif (not $addDirs->{$newID}) { }
1080 6 2183 if ($curInfo->{'WriteCondition'})
1083 0 6 unless (eval $curInfo->{'WriteCondition'})
1084 0 0 if $@
1089 2189 0 if $isNew >= 0
1090 1099 1090 unless ($nvHash or defined $mandatory->{$newID})
1091 435 664 unless $wrongDir
1095 28 636 unless $et->IsOverwriting($nvHash)
1099 2 634 if (not defined $nvHash->{'Value'} and $nvHash->{'WantGroup'} and lc $nvHash->{'WantGroup'} eq lc $wrongDir) { }
1109 463 3 if $isNew > 0
1113 1724 73 if ($set{$newID}) { }
40 33 elsif ($isNew > 0) { }
4 29 elsif ($newInfo->{'Format'} and $newInfo->{'Writable'} and $newInfo->{'Writable'} ne '1') { }
0 31 elsif ($addDirs->{$newID} and $newInfo ne $addDirs->{$newID}) { }
1121 1474 250 if ($isNew > 0) { }
241 9 elsif ($nvHash or $xDelete{$newID}) { }
1123 602 872 if ($nvHash) { }
1124 84 518 unless $nvHash->{'IsCreating'}
1125 1 517 if ($newInfo->{'IsOverwriting'}) { }
1132 631 241 if $xDelete{$newID}
1137 72 687 if ($newInfo->{'Format'}) { }
1143 0 687 unless ($newFormName)
1150 3 238 unless ($nvHash)
1154 241 0 if (length $oldValue >= $oldSize) { }
1162 2 239 unless $writable and $writable ne 1
1165 8 233 if ($writeForm ne $newFormName)
1170 2 6 if ($inMakerNotes) { }
2 4 elsif ($writable ne $newFormName) { }
1178 26 9 if ($inMakerNotes and $readFormName ne "string" and $readFormName ne "undef")
1182 1 240 if ($newInfo->{'IsOverwriting'}) { }
1189 994 15 if ($isOverwriting) { }
1190 751 243 unless defined $newVal
1193 22 972 if (not defined $newVal or $xDelete{$newID} and not defined $nvHash->{'Shift'})
1194 0 20 if (not defined $newVal and $newInfo->{'RawConvInv'} and defined $nvHash->{'Value'})
1198 22 0 unless ($isNew)
1204 19 953 if ($newCount and $newCount < 0)
1211 0 972 unless (defined $newValue)
1215 972 0 if (length $newValue) { }
1218 0 751 if ($et->{'FILE_TYPE'} eq "JPEG" and length $newValue > 65436 and $newInfo->{'Name'} ne "PreviewImage")
1221 0 0 $newInfo->{'MakerNotes'} ? :
1225 1 971 if ($strEnc and $newFormName eq "string")
1232 972 0 if ($isNew >= 0)
1235 227 745 if (defined $allMandatory)
1237 80 147 if ($nvHash) { }
1244 13 959 if ($verbose > 1)
1245 0 13 unless $isNew
1246 0 13 if ($newInfo->{'OffsetPair'} and $newVal eq '4277010157') { }
1249 8 5 $nvHash ? :
1255 0 15 if $isNew > 0
1259 75 912 if ($ifdFormName)
1270 0 40 unless $newInfo = $addDirs->{$newID}
1273 0 40 if $newInfo->{'MakerNotes'} or $newInfo->{'Name'} eq "SubIFD"
1275 13 27 if ($newInfo->{'SubDirectory'}{'TagTable'}) { }
1285 36 4 if $newInfo->{'SubIFD'}
1288 2 38 unless defined $newValue and length $newValue
1290 34 4 if ($newInfo->{'SubIFD'}) { }
1308 0 4 unless ($newFormName and $Image::ExifTool::Exif::formatNumber{$newFormName})
1324 4418 1040 if ($isNew < 0)
1332 0 4418 if ($oldImageData)
1338 5458 0 if ($newInfo)
1342 8 5450 if ($newInfo->{'DataTag'} and $isNew >= 0)
1345 4 4 unless (defined $offsetData{$dataTag} or $dataTag eq "LeicaTrailer")
1351 4 0 if (defined $offsetData{$dataTag}) { }
1353 2 2 if ($dataTag eq "PreviewImage")
1355 2 0 if $len <= 4
1360 0 4 if ($err)
1361 0 0 if $newInfo->{'IsOffset'}
1370 43 5415 if ($newInfo->{'MakerNotes'}) { }
433 4982 elsif ($newInfo->{'SubDirectory'} and $isNew <= 0 and not $isOverwriting and !defined($newInfo->{'Writable'}) || $newInfo->{'Writable'} and not $newInfo->{'ReadFromRAF'}) { }
158 4824 elsif ($newInfo->{'OffsetPair'}) { }
279 4545 elsif ($newInfo->{'DataMember'}) { }
1372 1 0 if ($et->{'DEL_GROUP'}{'MakerNotes'} and $et->{'DEL_GROUP'}{'MakerNotes'} != 2 || $isNew <= 0)
1375 0 1 if ($et->IsRawType) { }
1378 1 0 if ($isNew <= 0)
1380 0 1 if $verbose
1386 7 35 if ($isNew >= 0 and defined $set{$newID}) { }
1390 6 1 if ($nvHash and $nvHash->{'MAKER_NOTE_FIXUP'})
1413 35 0 if ($newInfo->{'SubDirectory'})
1415 4 31 if $sub->{'FixBase'}
1418 5 30 if defined $sub->{'Base'}
1420 34 1 if $sub->{'ByteOrder'}
1423 35 0 if ($oldInfo and $oldInfo->{'SubDirectory'}) { }
1425 35 0 if $subTable
1431 35 0 if $subTable
1432 0 35 unless $subTable
1433 0 35 if ($writeProc and $writeProc eq \&Image::ExifTool::MakerNotes::WriteUnknownOrPreview and $oldValue =~ /^\xff\xd8\xff/) { }
33 2 elsif (not $notIFD) { }
1442 33 2 if (defined $loc) { }
1 1 elsif ($subTable->{'PROCESS_PROC'} and $subTable->{'PROCESS_PROC'} eq \&Image::ExifTool::ProcessBinaryData) { }
1 0 elsif ($notIFD) { }
1448 1 32 if ($changed == $et->{'CHANGED'} and $subdirInfo{'Fixup'}->IsEmpty)
1456 1 0 if (defined $sub->{'Start'}) { }
1468 1 0 if ($writeProc)
1474 0 0 if ($et->{'FILE_TYPE'} eq 'JPEG') { }
1480 34 1 if (defined $subdir)
1481 0 34 unless length $subdir
1488 5 29 if ($subdirInfo{'Relative'}) { }
29 0 elsif (not defined $subdirInfo{'Relative'}) { }
1495 1 4 if ($previewInfo)
1498 1 1 unless /_PreviewImage$/
1515 1 28 if ($subdirInfo{'AutoFix'}) { }
0 28 elsif ($subdirInfo{'FixBase'} and $baseShift < 0 and !$subdirInfo{'MinOffset'} || $subdirInfo{'MinOffset'} + $baseShift < 0) { }
1522 0 0 if (not defined $fixBase) { }
0 0 elsif ($fixBase eq '') { }
1523 0 0 $et->Options('IgnoreMinorErrors') ? :
1535 4 25 if ($previewInfo and not $previewInfo->{'NoBaseShift'})
1552 106 327 if ($newInfo->{'SubIFD'}) { }
327 0 elsif (!defined($subdir->{'Start'}) || $subdir->{'Start'} =~ /\$valuePtr/ and $subdir->{'TagTable'}) { }
1557 15 91 if ($subdir->{'TagTable'})
1563 8 98 if $subTable->{'GROUPS'}{'0'} eq "MakerNotes"
1566 0 106 unless ($readCount)
1567 0 0 if $et->Error("$name entry $index has zero count", 2)
1580 109 0 if (defined $subdir->{'Start'})
1583 0 109 unless (&Image::ExifTool::IsInt($newStart))
1591 0 109 if ($subdir->{'Base'})
1597 3 106 if $i
1606 67 42 $imageDataFlag eq 'Main' ? :
1615 55 54 if $newInfo->{'SubIFD'} == 2
1616 0 109 if ($subdir->{'RelativeBase'})
1622 15 94 if ($subdirStart < 0 or $subdirStart + 2 > $dataLen)
1623 15 0 if ($raf) { }
1630 0 0 if ($subTable->{'VARS'} and $subTable->{'VARS'}{'MINOR_ERRORS'}) { }
0 0 elsif ($et->Error(@err)) { }
1639 0 109 unless (defined $subdirData)
1641 0 0 unless $et->{'VALUE'}{'Error'}
1645 0 0 if ($hdrLen and $hdrLen > 0 and $subdirStart <= $dataLen)
1649 6 103 unless (length $subdirData)
1650 6 0 unless $inMakerNotes
1658 4 99 if (ref $subdirInfo{'ImageData'})
1666 5 98 if ($readCount > 1) { }
1684 6 100 unless length $newValue
1687 0 100 if ($writeCount < $readCount and $writeCount == 1)
1705 4 323 if ($subdir->{'Start'})
1712 1 326 if ($subdir->{'Base'})
1731 0 327 unless ($oldSize)
1742 21 306 if $subdir->{'ByteOrder'}
1745 266 61 if (defined $newValue) { }
1747 3 263 if ($hdrLen)
1755 1 326 unless (length $$newValuePt)
1757 1 0 if $oldSize or not $inMakerNotes
1759 5 321 if ($subFixup->{'Pointers'} and $subdirInfo{'Base'} == $base) { }
1773 10 148 if ($dataTag eq 'CanonVRD') { }
7 141 elsif ($dataTag eq 'OriginalDecisionData') { }
1776 1 9 if ($et->{'NEW_VALUE'}{$Image::ExifTool::Extra{'CanonVRD'}}) { }
0 9 elsif ($et->{'DEL_GROUP'}{'CanonVRD'} or $et->{'DEL_GROUP'}{'Trailer'}) { }
1778 1 0 $et->GetNewValue('CanonVRD') ? :
1786 1 9 if ($hasVRD) { }
1800 1 6 if ($oddInfo and $et->{'NEW_VALUE'}{$oddInfo}) { }
1 5 elsif ($$newValuePt ne "\000\000\000\000") { }
1802 0 1 if ($verbose > 1)
1803 0 0 if $$newValuePt ne "\0\0\0\0"
1804 0 0 if $odd
1808 1 0 if (length $$newValuePt == 4) { }
1812 0 1 unless $et->{'FILE_TYPE'} eq "JPEG"
1814 1 0 if ref $odd
1819 2 5 if ($odd) { }
1822 1 1 if $et->{'FILE_TYPE'} eq "JPEG"
1834 137 4 if ($isNew <= 0)
1837 0 137 if $newInfo->{'ByteOrder'}
1840 68 69 unless $newInfo->{'IsOffset'}
1843 0 0 if ($Image::ExifTool::Exif::formatSize[$newFormat] != 4 and $newInfo->{'IsOffset'})
1844 0 0 if $isNew > 0
1845 0 0 if $newCount != $readCount
1850 0 0 unless (defined $newValue)
1856 70 71 unless $offsetInfo
1861 0 141 unless $newCount
1872 0 279 if ($newInfo->{'Format'} and $newInfo->{'Format'} ne $formatStr)
1876 0 0 if $format
1880 279 0 if ($conv) { }
1882 0 279 if (ref $conv eq 'CODE') { }
1902 5450 0 unless $oldInfo and $oldInfo->{'FixedSize'}
1903 153 5297 if ($Image::ExifTool::Exif::saveForValidate{$newID} and $tagTablePtr eq \%Image::ExifTool::Exif::Main)
1907 2475 2975 if ($newSize > 4) { }
1915 5 2470 if ($dirInfo->{'EntryBased'} or $newInfo and $newInfo->{'EntryBased'}) { }
1922 2475 0 if $newInfo
1923 2 2473 if ($dataTag)
1924 1 1 if ($dataTag eq 'PreviewImage' and $et->{'FILE_TYPE'} eq 'JPEG' || $et->{'GENERATE_PREVIEW_INFO'}) { }
0 1 elsif ($dataTag eq 'LeicaTrailer' and $et->{'LeicaTrailer'}) { }
1929 1 0 unless $et->{'PREVIEW_INFO'}
1932 0 1 if $newInfo->{'ChangeBase'}
1933 0 1 if ($newInfo->{'IsOffset'} and $newInfo->{'IsOffset'} eq 2)
1937 0 1 if $$newValuePt eq "LOAD_PREVIEW"
1943 1 2474 if ($putFirst and $dirInfo->{'HeaderPtr'}) { }
1951 5 2469 if ($entryBased) { }
1952 1 4 unless $entryBasedFixup
1961 1926 1049 if $newSize < 4
1968 289 186 if (defined $mandatory->{$newID})
1972 280 9 if (defined $mandVal and $mandVal eq $$newValuePt)
1981 80 296 if (%validateInfo)
1985 0 376 if ($ignoreCount)
1986 0 0 $ignoreCount > 1 ? :
1987 0 0 $dirInfo->{'FixBase'} ? :
1990 0 376 if ($fixCount)
1991 0 0 $fixCount > 1 ? :
1999 289 87 if ($dirEnd + 4 <= $dataLen) { }
2013 14 3 if ($allMandatory and not $isNextIFD and $newEntries < $numEntries || $numEntries == 0)
2018 13 1 if defined $deleteAll
2019 0 14 if $verbose > 1
2022 1 375 if ($ifd and not $newEntries)
2023 0 1 if $verbose
2027 1 374 if ($entryBasedFixup)
2035 53 322 if ($dirName eq "MakerNotes" and $dirInfo->{'Parent'} =~ /^(ExifIFD|IFD0)$/)
2037 13 40 if defined $pad and $pad == 0 || $pad > 4 && $pad <= 32
2044 47 328 if ($nextIfdPos)
2050 368 7 length $nextIFD ? :
2056 120 255 if (@subdirs)
2061 137 0 if ($subdirFixup)
2068 4 133 if (ref $imageData)
2072 4 0 if ($subFix)
2086 5 132 if $subdir->{'Where'} eq "valBuff"
2089 0 137 unless (&Get32u(\$newData, $offset) == 4277006349)
2100 362 13 if ($dirFixup)
2112 326 49 unless $isNextIFD
2113 42 7 if ($nextIfdOffset) { }
2118 0 7 if $verbose
2125 49 0 $dirName =~ s/(\d+)$// ? :
2130 7 42 unless $nextIfdOffset
2134 0 42 if ($et->{'PROCESSED'}{$addr})
2140 0 42 if ($dirName eq "SubIFD1" and not &ValidateIFD($dirInfo, $dirStart))
2141 0 0 if ($et->{'TIFF_TYPE'} eq 'TIFF') { }
0 0 elsif ($verbose) { }
2148 1 41 if ($et->{'DEL_GROUP'}{$dirName}) { }
2149 0 1 if $verbose
2150 0 1 if $raf
2153 0 1 if ($et->{'DEL_GROUP'}{$dirName} == 2 and $et->{'ADD_DIRS'}{$dirName}) { }
2164 0 41 if $verbose
2184 60 268 if (@offsetInfo)
2190 102 60 if ($ifd >= 0) { }
2191 32 70 unless my $offsetInfo = $offsetInfo[$ifd]
2192 0 23 if ($offsetInfo->{'273'} and $offsetInfo->{'324'})
2195 0 0 if ($dirName eq 'SubIFD' and $et->{'TIFF_TYPE'} eq 'ARW' and $offsetInfo->{'279'} and $offsetInfo->{'325'} and $offsetInfo->{'273'}[2] == 1) { }
2214 1 0 if ($stripOffsets and $stripOffsets->[0]{'PanasonicHack'} or $rawDataOffset and $rawDataOffset->[0]{'PanasonicHack'})
2219 0 1 if $err
2226 70 70 unless $tagInfo->{'IsOffset'}
2228 0 70 unless $sizeInfo
2231 24 46 if ($raf and defined $origDirInfo->{'ImageData'} and $tagID == 273 || $tagID == 324 || $sizeInfo->[3][0] && $sizeInfo->[3][0] * scalar(@{$sizeInfo->[3];}) > 1000000 and not defined $dataTag && defined $offsetData{$dataTag}) { }
2246 43 17 unless @writeLater
2255 0 70 unless ($count == $count2)
2261 0 70 if $count > 1
2263 0 70 if $n > 4
2264 0 70 if ($byteCounts < 0 or $byteCounts + $n > length $newData)
2270 2 68 if ($tagInfo->{'IsOffset'} eq '2') { }
2278 0 70 if ($tagInfo->{'WrongBase'}) { }
2290 0 70 if $tagInfo->{'ByteOrder'}
2294 68 2 if (@$oldOffset and @$oldSize)
2302 1 69 if ($tagInfo->{'PanasonicHack'}) { }
2310 68 2 if (defined $offset) { }
0 2 elsif ($size != 4277010157) { }
2319 4 66 if ($size == 4277010157) { }
24 42 elsif ($ifd < 0) { }
37 5 elsif ($offset >= 0 and $offset + $size <= $dataLen) { }
0 5 elsif ($et->{'TIFF_TYPE'} eq 'MRW') { }
4 1 elsif ($raf and $raf->Seek($offset + $dbase + $dpos, 0) and $raf->Read($buff, $size) == $size) { }
0 1 elsif ($tagInfo->{'Name'} eq 'ThumbnailOffset' and $offset >= 0 and $offset < $dataLen) { }
1 0 elsif ($tagInfo->{'Name'} eq 'PreviewImageStart' and $et->{'FILE_TYPE'} eq 'JPEG') { }
2320 0 4 unless (defined $dataTag)
2324 0 4 unless (defined $offsetData{$dataTag})
2328 0 4 if ($count > 1)
2333 0 4 if ($Image::ExifTool::Exif::formatSize[$format] != 4)
2342 0 24 if ($offsetPair->[0][6])
2343 0 0 if ($count > 1) { }
2348 0 0 if ($padToFixedOffset < 0) { }
2360 0 0 if $blockSize + $size & 1 and $n + 1 >= $count || !$oldEnd || $oldEnd != $$oldOffset[$n + 1]
2363 0 0 if ($origDirInfo->{'PreserveImagePadding'} and $n + 1 < $count and $oldEnd and $$oldOffset[$n + 1] > $oldEnd)
2372 4 20 if ($imageDataFlag eq "SubIFD" and not $subIfdDataFixup)
2385 0 0 $n & 3 ? :
2388 0 0 unless defined $ttwLen
2395 0 0 if ($et->{'TIFF_TYPE'} eq "ARW" and $tagInfo->{'Name'} eq "ThumbnailOffset" and $et->{'Model'} eq "DSLR-A100" and not $buff =~ /^\xff\xd8\xff/)
2400 0 0 if ($pos < 65536 and $raf->Seek($pos + 65536, 0) and $raf->Read($try, $size) == $size and $try =~ /^\xff\xd8\xff/) { }
2415 0 0 unless (&WriteValue($size, $formatStr, 1, \$newData, $byteCountPos))
2424 1 0 if ($r and not $raf)
2427 1 0 unless $r->Seek($offset + $base + $dataPos, 0) and $r->Read($buff, $size) == $size and $buff =~ /^.\xd8\xff[\xc4\xdb\xe0-\xef]/s
2430 0 1 unless $r->Seek($tell, 0)
2433 1 0 unless defined $buff
2436 0 0 if $et->Error("Error reading $dataName data in $name", $inMakerNotes)
2439 14 56 if ($tagInfo->{'Name'} eq "PreviewImageStart")
2440 8 6 if ($et->{'FILE_TYPE'} eq 'JPEG' and not $tagInfo->{'MakerPreview'}) { }
0 12 elsif ($et->{'TIFF_TYPE'} eq 'ARW' and $et->{'Model'} eq 'DSLR-A100') { }
2443 7 1 unless $et->{'PREVIEW_INFO'}
2446 2 6 if ($tagInfo->{'IsOffset'} and $tagInfo->{'IsOffset'} eq 2)
2449 7 1 if ($offset >= 0 and $offset + $size <= $dataLen)
2457 0 0 if $et->{'A100PreviewLength'}
2458 0 0 if defined $buff
2466 4 66 if $subIfdDataFixup
2470 0 70 if ($otherPos)
2471 0 0 if ($tagInfo->{'PanasonicHack'}) { }
0 0 elsif (ref $otherPos eq 'ARRAY') { }
2481 0 0 if $count > 1
2487 0 0 if $subIfdDataFixup
2491 46 24 if ($ifd >= 0) { }
2493 1 45 if length $buff & 1
2503 0 60 if (defined $ttwLen and $ttwLen != length $newData)
2513 0 28 if (defined $entry)
2515 0 0 if ($format < 1 or $format > 13) { }
2524 0 0 if ($imageDataFlag eq "SubIFD")
2535 4 4 if ($subFix and defined $subFix->{'BlockLen'} and $numBlocks > 0)
2548 124 204 unless ($dirInfo->{'Fixup'})
2550 121 3 $hdrPtr ? :
2557 124 0 if ($newDataPos)
2562 0 124 if $et->{'LeicaTrailer'}
2565 6 118 if ($previewInfo) { }
6 112 elsif (defined $newData and $deleteAll) { }
0 112 elsif ($et->{'A100PreviewLength'}) { }
2569 5 1 if ($$pt ne 'LOAD_PREVIEW' and length($$pt) + length($newData) + 14 <= 65533 and not $previewInfo->{'IsTrailer'} or $previewInfo->{'IsShort'}) { }
2577 0 5 if ($previewInfo->{'Relative'})
2584 0 5 unless $et->{'PREVIEW_INFO'}{'WasContained'}
2589 0 1 unless $previewInfo->{'Fixup'}
2599 6 118 if ($newDataPos == 16)
2605 0 124 if ($key)
2609 0 0 if ($start and $start - 8 + $len <= length $newData)
2617 13 315 if defined $newData and length $newData < 12
2620 0 315 if defined $newData and length $newData and $et->{'FORCE_WRITE'}{'EXIF'}