AWARE [SYSTEMS] Imaging expertise for the Delphi developer
AWare Systems, Imaging expertise for the Delphi developer, Home TIFF and LibTiff Mailing List Archive

LibTiff Mailing List

TIFF and LibTiff Mailing List Archive
May 2008

Previous Thread
Next Thread

Previous by Thread
Next by Thread

Previous by Date
Next by Date

Contact

The TIFF Mailing List Homepage
This list is run by Frank Warmerdam
Archive maintained by AWare Systems



Valid HTML 4.01!



Thread

2008.05.24 03:47 "beta2 release", by Frank Warmerdam
2008.05.24 07:30 "Re: beta2 release", by Edward Lam
2008.05.24 15:13 "Re: beta2 release", by Bob Friesenhahn
2008.05.26 13:48 "Re: beta2 release", by Edward Lam
2008.05.26 14:24 "Re: beta2 release - lfind() problem on Win64", by Edward Lam
2008.05.26 15:22 "Re: beta2 release - lfind() problem on Win64", by Frank Warmerdam
2008.05.26 15:31 "Re: beta2 release - lfind() problem on Win64", by Bob Friesenhahn
2008.05.26 15:47 "Re: beta2 release - lfind() problem on Win64", by Edward Lam
2008.05.26 16:07 "Re: beta2 release - lfind() problem on Win64", by Andrey Kiselev
2008.05.26 16:34 "Re: beta2 release - lfind() problem on Win64", by Bob Friesenhahn
2008.05.26 18:02 "Re: beta2 release - lfind() problem on Win64", by Edward Lam
2008.05.26 14:54 "Re: beta2 release -- tiffconf.vc.h patch", by Edward Lam
2008.05.26 15:10 "Re: beta2 release -- tiffconf.vc.h patch", by Frank Warmerdam
2008.05.26 18:07 "Re: beta2 release -- tiffconf.vc.h patch", by Edward Lam
2008.05.26 18:15 "Re: beta2 release -- tiffconf.vc.h patch", by Frank Warmerdam
2008.05.26 19:02 "Re: beta2 release -- tiffconf.vc.h patch", by Edward Lam
2008.05.26 18:17 "Re: beta2 release - TIFFFindField() on Windows", by Edward Lam
2008.05.26 19:32 "Re: beta2 release - predictors", by Edward Lam
2008.05.27 06:55 "Re: beta2 release - predictors", by Andrey Kiselev
2008.05.28 01:09 "Re: beta2 release", by Jay Berkenbilt
2008.05.28 01:15 "Re: beta2 release", by Frank Warmerdam

2008.05.26 15:22 "Re: beta2 release - lfind() problem on Win64", by Frank Warmerdam

Edward Lam wrote:
> Hi,
> 
> In trying to compile libtiff 4.0 beta 2 on Win64 with MSVC 8, I've 
> encountered the following warning which I think needs fixing:
> 
> tif_dirinfo.c(508) : warning C4133: 'function' : incompatible types - 
> from 'size_t *' to 'unsigned int *'
> 
> The problem is that the call to lfind() on Win64 is redirected to 
> _lfind() from search.h. For its 3rd argument, it hasn't been updated to 
> size_t * (pointer to 64-bits) and still uses unsigned int * (pointer to 
> 32-bits). I'm not quite sure what the best solution is at this time. On 
> the one hand, there's a comment that says we should use a binary search. 
> If we did use bsearch(), then it will fix the problem since bsearch() on 
> VC8 has been updated to use size_t (unlike _lfind). On the other hand, 
> I'm not convinced that the array it's trying to search in is sorted. 
> Well, I haven't actually looked but I assume it isn't sorted since it 
> would have been just as easy to call bsearch() instead of lfind().
> 
> Any thoughts?

Edward,

The field list is in sorted by key id, not name.

It is a scary practice, but passing a size_t * in place of an int * should work
on little endian machines since it just means the function will only use the
lower order 4 bytes of the value.

So, I'm inclined to take no action on this and leave the warning as a clue to a
questionable practice.  Frankly I hate using stuff like lfind() and bsearch()
since it is amazing how varied the actual implementations and interfaces can be.

I have created a bugzilla ticket to track this issue:

   http://bugzilla.maptools.org/show_bug.cgi?id=1889

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    | President OSGeo, http://osgeo.org