Branch Coverage

blib/lib/Image/ExifTool/WriteExif.pl
Criterion Covered Total %
branch 575 952 60.4


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 123 6054 if (not $format or $format eq 1)
104 123 0 if ($tagInfo->{'Groups'}{'0'} eq 'MakerNotes') { }
122 0 11 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 7973 324 unless $et
501 32 292 unless ($dataPt)
523 154 8 unless $name and $dirName eq "MakerNotes" and not $name =~ /^MakerNote/
526 195 129 if $dirName eq "IFD0" or $dirName eq "ExifIFD"
529 252 72 if $tagTablePtr->{'GROUPS'}{'0'} eq "EXIF"
532 114 210 if $dirName =~ /^(IFD0|SubIFD)$/ and not defined $dirInfo->{'Multi'}
533 71 253 if $tagTablePtr->{'GROUPS'}{'0'} eq "MakerNotes"
549 115 257 if ($dirStart < 0 or $dirStart > $dataLen - 2) { }
257 0 elsif ($dirLen >= 2) { }
553 0 257 if $dirStart + $len > $dataLen
556 115 257 if ($mustRead)
557 38 77 if ($raf) { }
0 154 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 288 84 if ($dirStart + 4 < $dataLen) { }
593 0 288 if ($dirEnd > $dataLen)
596 0 0 unless $n and defined $rtn
600 217 71 unless ($inMakerNotes)
605 0 0 if ($tagID < $lastID and $tagID || $tagTablePtr->{'0'})
625 168 1870 ref $tagTablePtr->{$tagID} eq 'ARRAY' || $tagInfo->{'Condition'} ? :
629 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))
637 0 2 if $et->{'FORCE_WRITE'}{'FixBase'}
638 0 0 if ($et->{'TIFF_TYPE'} eq "SRW" and $et->{'Make'} eq "SAMSUNG" and $et->{'Model'} eq "EK-GN120")
646 289 83 if ($mandatory) { }
648 6 283 if ($dirName eq "IFD0" and defined $et->{'JFIFYResolution'})
657 84 205 unless ($numEntries)
659 225 84 unless defined $set{$_}
666 71 301 if ($inMakerNotes) { }
673 5 36 unless $set{$_}
675 0 36 if defined $perm and not $perm
677 0 71 if @newTags > 1
701 0 372 if ($inMakerNotes and $et->{'Model'} eq "Canon EOS 40D")
703 0 0 if ($fmt < 1 or $fmt > 13)
716 5054 1984 if (defined $oldID and $oldID == $newID)
720 4682 372 if ($index < $numEntries) { }
726 0 4682 if ($oldFormat < 1 or $oldFormat > 13)
731 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)
742 0 0 if ($oldFormat == 0 and $index and $oldCount == 0)
745 0 0 if $dirInfo->{'FixBase'}
759 580 4102 if (ref $oldInfo ne "HASH" or $oldInfo->{'Condition'})
767 0 2797 if ($oldCount < 2 and $oldInfo and $oldInfo->{'FixCount'})
768 0 0 unless $offList
771 0 0 if (defined $i and $i < $#$offList)
773 0 0 if $oldCount != $readCount
778 2127 2555 if ($oldSize > 4)
781 0 2127 if ($dirInfo->{'FixOffsets'})
782 0 0 unless $valEnd
786 0 0 unless (defined $valuePtr)
787 0 0 unless ($et->{'DropTags'})
788 0 0 $oldInfo ? :
789 0 0 if $et->Error("Bad $name offset for $tagStr", $inMakerNotes)
797 5 2122 if ($dirInfo->{'EntryBased'} or ref $tagTablePtr->{$oldID} eq 'HASH' and $tagTablePtr->{$oldID}{'EntryBased'}) { }
805 0 2127 if $valuePtr < $dirEnd and $valuePtr + $oldSize > $dirStart
807 226 1901 if ($valuePtr < 0 or $valuePtr + $oldSize > $dataLen)
809 218 8 if ($oldInfo) { }
8 0 elsif (defined $oldInfo) { }
814 8 0 if ($tmpInfo)
819 0 226 unless $tagStr
821 0 226 unless ($raf)
822 0 0 if ($tagStr eq 'PreviewImage') { }
0 0 elsif ($leicaTrailer) { }
824 0 0 if ($raf) { }
826 0 0 if ($oldInfo and $oldInfo->{'ChangeBase'})
845 0 0 unless $oldInfo
851 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) { }
858 0 0 unless (defined $set{$oldID})
859 0 0 $oldSize & 1 ? :
866 0 226 if (defined $pos)
870 0 0 unless ($success and $oldValue =~ /^(\xff\xd8\xff|(.|.{33})\xd8\xff\xdb)/s)
875 0 226 unless ($success)
876 0 0 if $et->Error("Error reading value for $name entry $index", $inMakerNotes)
880 0 0 if $et->Error("Bad $name offset for $tagStr", $inMakerNotes)
883 0 226 if ($invalidPreview) { }
885 0 0 if ($et->{'FILE_TYPE'} eq 'JPEG') { }
905 2 2125 if ($suspect)
906 2 0 $oldInfo ? :
908 2 0 if ($inMakerNotes) { }
911 0 0 if $et->Error($str, 1)
916 4456 226 unless $readFromFile
918 160 4522 if (defined $oldInfo and not $oldInfo)
924 0 0 if ($mayDelete{$oldID} and $oldInfo and !@newTags || $newTags[0] != $oldID)
926 0 0 if (not $nvHash and $wrongDir)
929 0 0 if $nvHash
931 0 0 if ($nvHash)
939 0 4682 if ($oldFormat == 13 || $oldFormat == 18 and not $oldInfo && $oldInfo->{'SubIFD'})
946 4682 0 if ($oldInfo)
948 0 4682 if ($oldInfo->{'IsOffset'} || $oldInfo->{'SubIFD'} and not $Image::ExifTool::Exif::intFormat{$oldFormName})
954 4 0 if ($oldInfo->{'Drop'} and $et->{'DropTags'} and $oldInfo->{'Drop'} == 1 || $oldInfo->{'Drop'} < $oldSize)
959 289 4389 if ($oldInfo->{'Format'})
962 0 289 unless ($readFormat)
967 0 289 if ($oldInfo->{'FixedSize'})
968 0 0 if $oldInfo->{'FixedSize'}
975 0 4678 if ($oldID <= $lastTagID and not $inMakerNotes)
976 0 0 $oldInfo ? :
977 0 0 if ($oldID == $lastTagID) { }
980 0 0 if defined $set{$oldID}
996 2197 4837 if (not defined $oldID) { }
3197 1640 elsif (not defined $newID) { }
997 372 1825 unless defined $newID
1001 35 3162 if (defined $set{$oldID}) { }
1016 2267 4395 $isNew >= 0 ? :
1019 2267 4395 if ($isNew >= 0)
1023 110 68 unless ($curInfo or $addDirs->{$newID})
1028 24 86 if (defined $curInfo and not $curInfo)
1033 430 25 unless $tagInfo->{'TagID'} == $newID
1035 0 25 unless defined $val
1038 24 1 if ($fmt)
1040 0 24 unless defined $val
1043 25 0 if ($curInfo)
1044 21 4 if $curInfo eq $tagInfo
1049 3 21 unless $curInfo
1052 83 27 if ($curInfo and $et->{'NEW_VALUE'}{$curInfo}) { }
1055 26 1 if $isNew > 0
1060 2172 69 if ($curInfo) { }
1 68 elsif (not $addDirs->{$newID}) { }
1061 6 2166 if ($curInfo->{'WriteCondition'})
1064 0 6 unless (eval $curInfo->{'WriteCondition'})
1065 0 0 if $@
1070 2172 0 if $isNew >= 0
1071 1097 1075 unless ($nvHash or defined $mandatory->{$newID})
1072 435 662 unless $wrongDir
1076 28 634 unless $et->IsOverwriting($nvHash)
1080 2 632 if (not defined $nvHash->{'Value'} and $nvHash->{'WantGroup'} and lc $nvHash->{'WantGroup'} eq lc $wrongDir) { }
1090 463 3 if $isNew > 0
1094 1707 71 if ($set{$newID}) { }
38 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}) { }
1102 1457 250 if ($isNew > 0) { }
241 9 elsif ($nvHash or $xDelete{$newID}) { }
1104 599 858 if ($nvHash) { }
1105 83 516 unless $nvHash->{'IsCreating'}
1106 1 515 if ($newInfo->{'IsOverwriting'}) { }
1113 629 229 if $xDelete{$newID}
1118 68 677 if ($newInfo->{'Format'}) { }
1124 0 677 unless ($newFormName)
1131 3 238 unless ($nvHash)
1135 241 0 if (length $oldValue >= $oldSize) { }
1143 2 239 unless $writable and $writable ne 1
1146 8 233 if ($writeForm ne $newFormName)
1151 2 6 if ($inMakerNotes) { }
2 4 elsif ($writable ne $newFormName) { }
1159 26 9 if ($inMakerNotes and $readFormName ne "string" and $readFormName ne "undef")
1163 1 240 if ($newInfo->{'IsOverwriting'}) { }
1170 980 15 if ($isOverwriting) { }
1171 749 231 unless defined $newVal
1174 22 958 if (not defined $newVal or $xDelete{$newID} and not defined $nvHash->{'Shift'})
1175 0 20 if (not defined $newVal and $newInfo->{'RawConvInv'} and defined $nvHash->{'Value'})
1179 22 0 unless ($isNew)
1185 19 939 if ($newCount and $newCount < 0)
1192 0 958 unless (defined $newValue)
1196 958 0 if (length $newValue) { }
1199 0 751 if ($et->{'FILE_TYPE'} eq "JPEG" and length $newValue > 65436 and $newInfo->{'Name'} ne "PreviewImage")
1202 0 0 $newInfo->{'MakerNotes'} ? :
1206 1 957 if ($strEnc and $newFormName eq "string")
1213 958 0 if ($isNew >= 0)
1216 217 741 if (defined $allMandatory)
1218 78 139 if ($nvHash) { }
1225 13 945 if ($verbose > 1)
1226 0 13 unless $isNew
1227 0 13 if ($newInfo->{'OffsetPair'} and $newVal eq '4277010157') { }
1230 8 5 $nvHash ? :
1236 0 15 if $isNew > 0
1240 71 902 if ($ifdFormName)
1251 0 38 unless $newInfo = $addDirs->{$newID}
1254 0 38 if $newInfo->{'MakerNotes'} or $newInfo->{'Name'} eq "SubIFD"
1256 13 25 if ($newInfo->{'SubDirectory'}{'TagTable'}) { }
1266 34 4 if $newInfo->{'SubIFD'}
1269 2 36 unless defined $newValue and length $newValue
1271 32 4 if ($newInfo->{'SubIFD'}) { }
1289 0 4 unless ($newFormName and $Image::ExifTool::Exif::formatNumber{$newFormName})
1305 4413 1024 if ($isNew < 0)
1313 0 4413 if ($oldImageData)
1319 5437 0 if ($newInfo)
1323 8 5429 if ($newInfo->{'DataTag'} and $isNew >= 0)
1326 4 4 unless (defined $offsetData{$dataTag} or $dataTag eq "LeicaTrailer")
1332 4 0 if (defined $offsetData{$dataTag}) { }
1334 2 2 if ($dataTag eq "PreviewImage")
1336 2 0 if $len <= 4
1341 0 4 if ($err)
1342 0 0 if $newInfo->{'IsOffset'}
1351 43 5394 if ($newInfo->{'MakerNotes'}) { }
433 4961 elsif ($newInfo->{'SubDirectory'} and $isNew <= 0 and not $isOverwriting and !defined($newInfo->{'Writable'}) || $newInfo->{'Writable'} and not $newInfo->{'ReadFromRAF'}) { }
158 4803 elsif ($newInfo->{'OffsetPair'}) { }
279 4524 elsif ($newInfo->{'DataMember'}) { }
1353 1 0 if ($et->{'DEL_GROUP'}{'MakerNotes'} and $et->{'DEL_GROUP'}{'MakerNotes'} != 2 || $isNew <= 0)
1356 0 1 if ($et->IsRawType) { }
1359 1 0 if ($isNew <= 0)
1361 0 1 if $verbose
1367 7 35 if ($isNew >= 0 and defined $set{$newID}) { }
1371 6 1 if ($nvHash and $nvHash->{'MAKER_NOTE_FIXUP'})
1394 35 0 if ($newInfo->{'SubDirectory'})
1396 4 31 if $sub->{'FixBase'}
1399 5 30 if defined $sub->{'Base'}
1401 34 1 if $sub->{'ByteOrder'}
1404 35 0 if ($oldInfo and $oldInfo->{'SubDirectory'}) { }
1406 35 0 if $subTable
1412 35 0 if $subTable
1413 0 35 unless $subTable
1414 0 35 if ($writeProc and $writeProc eq \&Image::ExifTool::MakerNotes::WriteUnknownOrPreview and $oldValue =~ /^\xff\xd8\xff/) { }
33 2 elsif (not $notIFD) { }
1423 33 2 if (defined $loc) { }
1 1 elsif ($subTable->{'PROCESS_PROC'} and $subTable->{'PROCESS_PROC'} eq \&Image::ExifTool::ProcessBinaryData) { }
1 0 elsif ($notIFD) { }
1429 1 32 if ($changed == $et->{'CHANGED'} and $subdirInfo{'Fixup'}->IsEmpty)
1437 1 0 if (defined $sub->{'Start'}) { }
1449 1 0 if ($writeProc)
1455 0 0 if ($et->{'FILE_TYPE'} eq 'JPEG') { }
1461 34 1 if (defined $subdir)
1462 0 34 unless length $subdir
1469 5 29 if ($subdirInfo{'Relative'}) { }
29 0 elsif (not defined $subdirInfo{'Relative'}) { }
1476 1 4 if ($previewInfo)
1479 1 1 unless /_PreviewImage$/
1496 1 28 if ($subdirInfo{'AutoFix'}) { }
0 28 elsif ($subdirInfo{'FixBase'} and $baseShift < 0 and !$subdirInfo{'MinOffset'} || $subdirInfo{'MinOffset'} + $baseShift < 0) { }
1503 0 0 if (not defined $fixBase) { }
0 0 elsif ($fixBase eq '') { }
1504 0 0 $et->Options('IgnoreMinorErrors') ? :
1516 4 25 if ($previewInfo and not $previewInfo->{'NoBaseShift'})
1533 106 327 if ($newInfo->{'SubIFD'}) { }
327 0 elsif (!defined($subdir->{'Start'}) || $subdir->{'Start'} =~ /\$valuePtr/ and $subdir->{'TagTable'}) { }
1538 15 91 if ($subdir->{'TagTable'})
1544 8 98 if $subTable->{'GROUPS'}{'0'} eq "MakerNotes"
1547 0 106 unless ($readCount)
1548 0 0 if $et->Error("$name entry $index has zero count", 2)
1561 109 0 if (defined $subdir->{'Start'})
1564 0 109 unless (&Image::ExifTool::IsInt($newStart))
1572 0 109 if ($subdir->{'Base'})
1578 3 106 if $i
1587 67 42 $imageDataFlag eq 'Main' ? :
1596 55 54 if $newInfo->{'SubIFD'} == 2
1597 0 109 if ($subdir->{'RelativeBase'})
1603 15 94 if ($subdirStart < 0 or $subdirStart + 2 > $dataLen)
1604 15 0 if ($raf) { }
1611 0 0 if ($subTable->{'VARS'} and $subTable->{'VARS'}{'MINOR_ERRORS'}) { }
0 0 elsif ($et->Error(@err)) { }
1620 0 109 unless (defined $subdirData)
1622 0 0 unless $et->{'VALUE'}{'Error'}
1626 0 0 if ($hdrLen and $hdrLen > 0 and $subdirStart <= $dataLen)
1630 6 103 unless (length $subdirData)
1631 6 0 unless $inMakerNotes
1639 4 99 if (ref $subdirInfo{'ImageData'})
1647 5 98 if ($readCount > 1) { }
1665 6 100 unless length $newValue
1668 0 100 if ($writeCount < $readCount and $writeCount == 1)
1686 4 323 if ($subdir->{'Start'})
1693 1 326 if ($subdir->{'Base'})
1712 0 327 unless ($oldSize)
1723 21 306 if $subdir->{'ByteOrder'}
1726 266 61 if (defined $newValue) { }
1728 3 263 if ($hdrLen)
1736 1 326 unless (length $$newValuePt)
1738 1 0 if $oldSize or not $inMakerNotes
1740 5 321 if ($subFixup->{'Pointers'} and $subdirInfo{'Base'} == $base) { }
1754 10 148 if ($dataTag eq 'CanonVRD') { }
7 141 elsif ($dataTag eq 'OriginalDecisionData') { }
1757 1 9 if ($et->{'NEW_VALUE'}{$Image::ExifTool::Extra{'CanonVRD'}}) { }
0 9 elsif ($et->{'DEL_GROUP'}{'CanonVRD'} or $et->{'DEL_GROUP'}{'Trailer'}) { }
1759 1 0 $et->GetNewValue('CanonVRD') ? :
1767 1 9 if ($hasVRD) { }
1781 1 6 if ($oddInfo and $et->{'NEW_VALUE'}{$oddInfo}) { }
1 5 elsif ($$newValuePt ne "\000\000\000\000") { }
1783 0 1 if ($verbose > 1)
1784 0 0 if $$newValuePt ne "\0\0\0\0"
1785 0 0 if $odd
1789 1 0 if (length $$newValuePt == 4) { }
1793 0 1 unless $et->{'FILE_TYPE'} eq "JPEG"
1795 1 0 if ref $odd
1800 2 5 if ($odd) { }
1803 1 1 if $et->{'FILE_TYPE'} eq "JPEG"
1815 137 4 if ($isNew <= 0)
1818 0 137 if $newInfo->{'ByteOrder'}
1821 68 69 unless $newInfo->{'IsOffset'}
1824 0 0 if ($Image::ExifTool::Exif::formatSize[$newFormat] != 4 and $newInfo->{'IsOffset'})
1825 0 0 if $isNew > 0
1826 0 0 if $newCount != $readCount
1831 0 0 unless (defined $newValue)
1837 70 71 unless $offsetInfo
1842 0 141 unless $newCount
1853 0 279 if ($newInfo->{'Format'} and $newInfo->{'Format'} ne $formatStr)
1857 0 0 if $format
1861 279 0 if ($conv) { }
1863 0 279 if (ref $conv eq 'CODE') { }
1883 5429 0 unless $oldInfo and $oldInfo->{'FixedSize'}
1884 153 5276 if ($Image::ExifTool::Exif::saveForValidate{$newID} and $tagTablePtr eq \%Image::ExifTool::Exif::Main)
1888 2469 2960 if ($newSize > 4) { }
1896 5 2464 if ($dirInfo->{'EntryBased'} or $newInfo and $newInfo->{'EntryBased'}) { }
1903 2469 0 if $newInfo
1904 2 2467 if ($dataTag)
1905 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'}) { }
1910 1 0 unless $et->{'PREVIEW_INFO'}
1913 0 1 if $newInfo->{'ChangeBase'}
1914 0 1 if ($newInfo->{'IsOffset'} and $newInfo->{'IsOffset'} eq 2)
1918 0 1 if $$newValuePt eq "LOAD_PREVIEW"
1924 1 2468 if ($putFirst and $dirInfo->{'HeaderPtr'}) { }
1932 5 2463 if ($entryBased) { }
1933 1 4 unless $entryBasedFixup
1942 1919 1041 if $newSize < 4
1949 278 184 if (defined $mandatory->{$newID})
1953 269 9 if (defined $mandVal and $mandVal eq $$newValuePt)
1962 80 292 if (%validateInfo)
1966 0 372 if ($ignoreCount)
1967 0 0 $ignoreCount > 1 ? :
1968 0 0 $dirInfo->{'FixBase'} ? :
1971 0 372 if ($fixCount)
1972 0 0 $fixCount > 1 ? :
1980 288 84 if ($dirEnd + 4 <= $dataLen) { }
1994 14 3 if ($allMandatory and not $isNextIFD and $newEntries < $numEntries || $numEntries == 0)
1999 13 1 if defined $deleteAll
2000 0 14 if $verbose > 1
2003 1 371 if ($ifd and not $newEntries)
2004 0 1 if $verbose
2008 1 370 if ($entryBasedFixup)
2016 53 318 if ($dirName eq "MakerNotes" and $dirInfo->{'Parent'} =~ /^(ExifIFD|IFD0)$/)
2018 13 40 if defined $pad and $pad == 0 || $pad > 4 && $pad <= 32
2025 47 324 if ($nextIfdPos)
2031 364 7 length $nextIFD ? :
2037 118 253 if (@subdirs)
2042 135 0 if ($subdirFixup)
2049 4 131 if (ref $imageData)
2053 4 0 if ($subFix)
2067 5 130 if $subdir->{'Where'} eq "valBuff"
2070 0 135 unless (&Get32u(\$newData, $offset) == 4277006349)
2081 358 13 if ($dirFixup)
2093 322 49 unless $isNextIFD
2094 42 7 if ($nextIfdOffset) { }
2099 0 7 if $verbose
2106 49 0 $dirName =~ s/(\d+)$// ? :
2111 7 42 unless $nextIfdOffset
2115 0 42 if ($et->{'PROCESSED'}{$addr})
2121 0 42 if ($dirName eq "SubIFD1" and not &ValidateIFD($dirInfo, $dirStart))
2122 0 0 if ($et->{'TIFF_TYPE'} eq 'TIFF') { }
0 0 elsif ($verbose) { }
2129 1 41 if ($et->{'DEL_GROUP'}{$dirName}) { }
2130 0 1 if $verbose
2131 0 1 if $raf
2134 0 1 if ($et->{'DEL_GROUP'}{$dirName} == 2 and $et->{'ADD_DIRS'}{$dirName}) { }
2145 0 41 if $verbose
2165 60 264 if (@offsetInfo)
2171 102 60 if ($ifd >= 0) { }
2172 32 70 unless my $offsetInfo = $offsetInfo[$ifd]
2175 1 22 if ($stripOffsets and $stripOffsets->[0]{'PanasonicHack'})
2178 0 1 if $err
2185 70 70 unless $tagInfo->{'IsOffset'}
2187 0 70 unless $sizeInfo
2190 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}) { }
2205 43 17 unless @writeLater
2213 0 70 unless ($count == $count2)
2219 0 70 if $count > 1
2221 0 70 if $n > 4
2222 0 70 if ($byteCounts < 0 or $byteCounts + $n > length $newData)
2228 2 68 if ($tagInfo->{'IsOffset'} eq '2') { }
2236 0 70 if ($tagInfo->{'WrongBase'}) { }
2248 0 70 if $tagInfo->{'ByteOrder'}
2252 68 2 if (@$oldOffset and @$oldSize)
2260 1 69 if ($tagInfo->{'PanasonicHack'}) { }
2268 68 2 if (defined $offset) { }
0 2 elsif ($size != 4277010157) { }
2277 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') { }
2278 0 4 unless (defined $dataTag)
2282 0 4 unless (defined $offsetData{$dataTag})
2286 0 4 if ($count > 1)
2291 0 4 if ($Image::ExifTool::Exif::formatSize[$format] != 4)
2301 0 0 if $blockSize + $size & 1 and $n + 1 >= $count || !$oldEnd || $oldEnd != $$oldOffset[$n + 1]
2304 0 0 if ($origDirInfo->{'PreserveImagePadding'} and $n + 1 < $count and $oldEnd and $$oldOffset[$n + 1] > $oldEnd)
2313 4 20 if ($imageDataFlag eq "SubIFD" and not $subIfdDataFixup)
2326 0 0 $n & 3 ? :
2329 0 0 unless defined $ttwLen
2336 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/)
2341 0 0 if ($pos < 65536 and $raf->Seek($pos + 65536, 0) and $raf->Read($try, $size) == $size and $try =~ /^\xff\xd8\xff/) { }
2356 0 0 unless (&WriteValue($size, $formatStr, 1, \$newData, $byteCountPos))
2365 1 0 if ($r and not $raf)
2368 1 0 unless $r->Seek($offset + $base + $dataPos, 0) and $r->Read($buff, $size) == $size and $buff =~ /^.\xd8\xff[\xc4\xdb\xe0-\xef]/s
2371 0 1 unless $r->Seek($tell, 0)
2374 1 0 unless defined $buff
2377 0 0 if $et->Error("Error reading $dataName data in $name", $inMakerNotes)
2380 14 56 if ($tagInfo->{'Name'} eq "PreviewImageStart")
2381 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') { }
2384 7 1 unless $et->{'PREVIEW_INFO'}
2387 2 6 if ($tagInfo->{'IsOffset'} and $tagInfo->{'IsOffset'} eq 2)
2390 7 1 if ($offset >= 0 and $offset + $size <= $dataLen)
2398 0 0 if $et->{'A100PreviewLength'}
2399 0 0 if defined $buff
2407 4 66 if $subIfdDataFixup
2410 0 0 if ($otherPos and $tagInfo->{'PanasonicHack'})
2414 46 24 if ($ifd >= 0) { }
2416 1 45 if length $buff & 1
2426 0 60 if (defined $ttwLen and $ttwLen != length $newData)
2436 0 28 if (defined $entry)
2438 0 0 if ($format < 1 or $format > 13) { }
2447 0 0 if ($imageDataFlag eq "SubIFD")
2458 4 4 if ($subFix and defined $subFix->{'BlockLen'} and $numBlocks > 0)
2471 122 202 unless ($dirInfo->{'Fixup'})
2473 119 3 $hdrPtr ? :
2480 122 0 if ($newDataPos)
2485 0 122 if $et->{'LeicaTrailer'}
2488 6 116 if ($previewInfo) { }
6 110 elsif (defined $newData and $deleteAll) { }
0 110 elsif ($et->{'A100PreviewLength'}) { }
2492 5 1 if ($$pt ne 'LOAD_PREVIEW' and length($$pt) + length($newData) + 14 <= 65533 and not $previewInfo->{'IsTrailer'} or $previewInfo->{'IsShort'}) { }
2500 0 5 if ($previewInfo->{'Relative'})
2507 0 5 unless $et->{'PREVIEW_INFO'}{'WasContained'}
2512 0 1 unless $previewInfo->{'Fixup'}
2522 4 118 if ($newDataPos == 16)
2528 0 122 if ($key)
2532 0 0 if ($start and $start - 8 + $len <= length $newData)
2540 13 311 if defined $newData and length $newData < 12
2543 0 311 if defined $newData and length $newData and $et->{'FORCE_WRITE'}{'EXIF'}