2004.03.03 18:01 "[Tiff] TIFFClientOpen, libtiff 3.6.1, ignores 'm' option", by Dimitar

2004.03.03 18:15 "Re: [Tiff] TIFFClientOpen, libtiff 3.6.1, ignores 'm' option", by Frank Warmerdam

I noticed that I can not open tiff files after I upgraded from libtiff 3.5.7 to 3.6.1.

The reason is TIFFClientOpen.

In 3.6.1 there is check that all client supplied function pointers are not null. However this is not enough. I am supplying 'm' option, and passing null for the last two parameters (for map and unmap) because I am not going to use memory mapped files.

I think the correct way is to check for memory mapped file related functions, only when 'm' option is not specified.

Dimitar,

Andrey may choose to change TIFFClientOpen(), but in the meantime you can just provide "null operation" implementations of the map and unmap procedures.

For example (from tif_msdos.c):

static int
_tiffMapProc(thandle_t fd, tdata_t* pbase, toff_t* psize)
{
    return (0);
}

static void
_tiffUnmapProc(thandle_t fd, tdata_t base, toff_t size)
{
}

If we were going to relax the requirements on TIFFClientOpen(), then I would suggest not looking for the 'm' switch, but instead just having TIFFClientOpen() provide the above functions if the passed in function pointers are NULL.

Best regards,

---------------------------------------+--------------------------------------
I set the clouds in motion - turn up   | Frank Warmerdam, warmerdam@pobox.com
light and sound - activate the windows | http://pobox.com/~warmerdam
and watch the world go round - Rush    | Geospatial Programmer for Rent