diff --speed-large-files --minimal -Nru Thunar-0.8.0.orig/thunar-vfs/thunar-vfs-thumb-jpeg.c Thunar-0.8.0/thunar-vfs/thunar-vfs-thumb-jpeg.c --- Thunar-0.8.0.orig/thunar-vfs/thunar-vfs-thumb-jpeg.c 2007-01-20 21:39:09.000000000 +0100 +++ Thunar-0.8.0/thunar-vfs/thunar-vfs-thumb-jpeg.c 2007-02-11 19:17:53.081919000 +0100 @@ -312,7 +312,7 @@ { guint thumb_jpeg_length; guint thumb_jpeg_offset; - }; + } thumb_jpeg; struct /* thumbnail TIFF */ { guint thumb_tiff_length; @@ -320,8 +320,8 @@ guint thumb_tiff_interp; guint thumb_tiff_height; guint thumb_tiff_width; - }; - }; + } thumb_tiff; + } thumb; gboolean big_endian; } TvtjExif; @@ -415,15 +415,15 @@ /* and remember it appropriately */ if (tag == 0x0100) - exif->thumb_tiff_width = value; + exif->thumb.thumb_tiff.thumb_tiff_width = value; else if (tag == 0x0100) - exif->thumb_tiff_height = value; + exif->thumb.thumb_tiff.thumb_tiff_height = value; else if (tag == 0x0106) - exif->thumb_tiff_interp = value; + exif->thumb.thumb_tiff.thumb_tiff_interp = value; else if (tag == 0x0111) - exif->thumb_tiff_offset = value; + exif->thumb.thumb_tiff.thumb_tiff_offset = value; else - exif->thumb_tiff_length = value; + exif->thumb.thumb_tiff.thumb_tiff_length = value; } else if (tag == 0x0201 || tag == 0x0202) { @@ -435,9 +435,9 @@ /* and remember it appropriately */ if (G_LIKELY (tag == 0x201)) - exif->thumb_jpeg_offset = value; + exif->thumb.thumb_jpeg.thumb_jpeg_offset = value; else - exif->thumb_jpeg_length = value; + exif->thumb.thumb_jpeg.thumb_jpeg_length = value; } } } @@ -503,25 +503,25 @@ if (G_LIKELY (exif.thumb_compression == 6)) /* JPEG */ { /* check if we have a valid thumbnail JPEG */ - if (exif.thumb_jpeg_offset > 0 && exif.thumb_jpeg_length > 0 - && exif.thumb_jpeg_offset + exif.thumb_jpeg_length <= length) + if (exif.thumb.thumb_jpeg.thumb_jpeg_offset > 0 && exif.thumb.thumb_jpeg.thumb_jpeg_length > 0 + && exif.thumb.thumb_jpeg.thumb_jpeg_offset + exif.thumb.thumb_jpeg.thumb_jpeg_length <= length) { /* try to load the embedded thumbnail JPEG */ - return tvtj_jpeg_load (data + exif.thumb_jpeg_offset, exif.thumb_jpeg_length, size); + return tvtj_jpeg_load (data + exif.thumb.thumb_jpeg.thumb_jpeg_offset, exif.thumb.thumb_jpeg.thumb_jpeg_length, size); } } else if (exif.thumb_compression == 1) /* Uncompressed */ { /* check if we have a valid thumbnail (current only RGB interpretations) */ - if (G_LIKELY (exif.thumb_tiff_interp == 2) - && exif.thumb_tiff_offset > 0 && exif.thumb_tiff_length > 0 - && exif.thumb_tiff_offset + exif.thumb_tiff_length <= length - && exif.thumb_tiff_height * exif.thumb_tiff_width == exif.thumb_tiff_length) + if (G_LIKELY (exif.thumb.thumb_tiff.thumb_tiff_interp == 2) + && exif.thumb.thumb_tiff.thumb_tiff_offset > 0 && exif.thumb.thumb_tiff.thumb_tiff_length > 0 + && exif.thumb.thumb_tiff.thumb_tiff_offset + exif.thumb.thumb_tiff.thumb_tiff_length <= length + && exif.thumb.thumb_tiff.thumb_tiff_height * exif.thumb.thumb_tiff.thumb_tiff_width == exif.thumb.thumb_tiff.thumb_tiff_length) { /* plain RGB data, just what we need for a GdkPixbuf */ - return gdk_pixbuf_new_from_data (g_memdup (data + exif.thumb_tiff_offset, exif.thumb_tiff_length), - GDK_COLORSPACE_RGB, FALSE, 8, exif.thumb_tiff_width, - exif.thumb_tiff_height, exif.thumb_tiff_width, + return gdk_pixbuf_new_from_data (g_memdup (data + exif.thumb.thumb_tiff.thumb_tiff_offset, exif.thumb.thumb_tiff.thumb_tiff_length), + GDK_COLORSPACE_RGB, FALSE, 8, exif.thumb.thumb_tiff.thumb_tiff_width, + exif.thumb.thumb_tiff.thumb_tiff_height, exif.thumb.thumb_tiff.thumb_tiff_width, (GdkPixbufDestroyNotify) g_free, NULL); } } @@ -615,7 +615,7 @@ if (G_LIKELY (fstat (fd, &statb) == 0 && statb.st_size > 0)) { /* try to mmap the file */ - content = mmap (NULL, statb.st_size, PROT_READ, MAP_SHARED, fd, 0); + content = (JOCTET *)mmap (NULL, statb.st_size, PROT_READ, MAP_SHARED, fd, 0); /* verify that the mmap was successful */ if (G_LIKELY (content != (JOCTET *) MAP_FAILED)) @@ -630,7 +630,7 @@ } /* unmap the file content */ - munmap (content, statb.st_size); + munmap ((void *)content, statb.st_size); } /* close the file */ @@ -638,9 +638,9 @@ } return pixbuf; -#endif - +#else return NULL; +#endif }