From: Dan F. <dfa...@us...> - 2009-01-21 00:27:51
|
Update of /cvsroot/libexif/libexif/libexif In directory ddv4jf1.ch3.sourceforge.com:/tmp/cvs-serv16801/libexif Modified Files: exif-content.c Log Message: Fix an endless loop that occurs when the compiler makes enums less than the width of an int. This occurs with Open Watcom C and gcc with the -fshort-enums option. Index: exif-content.c =================================================================== RCS file: /cvsroot/libexif/libexif/libexif/exif-content.c,v retrieving revision 1.29 retrieving revision 1.30 diff -u -p -d -r1.29 -r1.30 --- exif-content.c 26 Jul 2008 16:06:49 -0000 1.29 +++ exif-content.c 21 Jan 2009 00:27:41 -0000 1.30 @@ -251,8 +251,8 @@ exif_content_fix (ExifContent *c) { ExifIfd ifd = exif_content_get_ifd (c); ExifDataType dt; - ExifTag t; ExifEntry *e; + unsigned int i; if (!c) return; @@ -265,7 +265,9 @@ exif_content_fix (ExifContent *c) * Then check for existing tags that are not allowed and for * non-existing mandatory tags. */ - for (t = 0; t <= 0xffff; t++) { + for (i = 0; i <= 0xffff; i++) { + /* Index using an int because t might only be 16 bits */ + const ExifTag t = (ExifTag) i; switch (exif_tag_get_support_level_in_ifd (t, ifd, dt)) { case EXIF_SUPPORT_LEVEL_MANDATORY: if (exif_content_get_entry (c, t)) break; |