Alien-FreeImage
view release on metacpan or search on metacpan
src/Source/LibTIFF4/tif_dirread.c view on Meta::CPAN
static enum TIFFReadDirEntryErr TIFFReadDirEntryCheckRangeLong8Sshort(int16 value);
static enum TIFFReadDirEntryErr TIFFReadDirEntryCheckRangeLong8Slong(int32 value);
static enum TIFFReadDirEntryErr TIFFReadDirEntryCheckRangeLong8Slong8(int64 value);
static enum TIFFReadDirEntryErr TIFFReadDirEntryCheckRangeSlong8Long8(uint64 value);
static enum TIFFReadDirEntryErr TIFFReadDirEntryData(TIFF* tif, uint64 offset, tmsize_t size, void* dest);
static void TIFFReadDirEntryOutputErr(TIFF* tif, enum TIFFReadDirEntryErr err, const char* module, const char* tagname, int recover);
static void TIFFReadDirectoryCheckOrder(TIFF* tif, TIFFDirEntry* dir, uint16 dircount);
static TIFFDirEntry* TIFFReadDirectoryFindEntry(TIFF* tif, TIFFDirEntry* dir, uint16 dircount, uint16 tagid);
static void TIFFReadDirectoryFindFieldInfo(TIFF* tif, uint16 tagid, uint32* fii);
static int EstimateStripByteCounts(TIFF* tif, TIFFDirEntry* dir, uint16 dircount);
static void MissingRequired(TIFF*, const char*);
static int TIFFCheckDirOffset(TIFF* tif, uint64 diroff);
static int CheckDirCount(TIFF*, TIFFDirEntry*, uint32);
static uint16 TIFFFetchDirectory(TIFF* tif, uint64 diroff, TIFFDirEntry** pdir, uint64* nextdiroff);
static int TIFFFetchNormalTag(TIFF*, TIFFDirEntry*, int recover);
static int TIFFFetchStripThing(TIFF* tif, TIFFDirEntry* dir, uint32 nstrips, uint64** lpp);
static int TIFFFetchSubjectDistance(TIFF*, TIFFDirEntry*);
static void ChopUpSingleUncompressedStrip(TIFF*);
src/Source/LibTIFF4/tif_dirread.c view on Meta::CPAN
{
TIFFWarningExt(tif->tif_clientdata,module,
"Invalid TIFF directory; tags are not sorted in ascending order");
break;
}
m=o->tdir_tag+1;
}
}
static TIFFDirEntry*
TIFFReadDirectoryFindEntry(TIFF* tif, TIFFDirEntry* dir, uint16 dircount, uint16 tagid)
{
TIFFDirEntry* m;
uint16 n;
(void) tif;
for (m=dir, n=0; n<dircount; m++, n++)
{
if (m->tdir_tag==tagid)
return(m);
}
return(0);
}
static void
TIFFReadDirectoryFindFieldInfo(TIFF* tif, uint16 tagid, uint32* fii)
{
int32 ma,mb,mc;
ma=-1;
mc=(int32)tif->tif_nfields;
while (1)
{
if (ma+1==mc)
{
*fii = FAILED_FII;
return;
}
mb=(ma+mc)/2;
if (tif->tif_fields[mb]->field_tag==(uint32)tagid)
break;
if (tif->tif_fields[mb]->field_tag<(uint32)tagid)
ma=mb;
else
mc=mb;
}
while (1)
{
if (mb==0)
break;
if (tif->tif_fields[mb-1]->field_tag!=(uint32)tagid)
break;
mb--;
}
*fii=mb;
}
/*
* Read custom directory from the arbitarry offset.
* The code is very similar to TIFFReadDirectory().
*/
( run in 0.767 second using v1.01-cache-2.11-cpan-97f6503c9c8 )