diff src/image.c @ 55886:ae9227eb8392

Work around bugs/problems with MinGW builds of graphics libraries called from MSVC builds of Emacs. (lookup_image): Make pointer to img static. (png_read_from_memory): Disable "global" optimization.
author Juanma Barranquero <lekktu@gmail.com>
date Wed, 02 Jun 2004 00:50:09 +0000
parents 30c03f9042b8
children 022411ad6751
line wrap: on
line diff
--- a/src/image.c	Wed Jun 02 00:43:56 2004 +0000
+++ b/src/image.c	Wed Jun 02 00:50:09 2004 +0000
@@ -213,7 +213,7 @@
 {
   UnlockPixels (GetGWorldPixMap (ximg));
 }
-#endif
+#endif /* MAC_OS */
 
 
 /* Functions to access the contents of a bitmap, given an id.  */
@@ -1596,6 +1596,11 @@
      Lisp_Object spec;
 {
   struct image_cache *c = FRAME_X_IMAGE_CACHE (f);
+#ifdef _MSC_VER
+  /* Work around a problem with MinGW builds of graphics libraries
+     not honoring calling conventions.  */
+  static
+#endif
   struct image *img;
   int i;
   unsigned hash;
@@ -4238,7 +4243,7 @@
 }
 
 #endif /* MAC_OS */
- 
+
 
 
 /***********************************************************************
@@ -5688,6 +5693,12 @@
    PNG_PTR is a pointer to the PNG control structure.  Copy LENGTH
    bytes from the input to DATA.  */
 
+#ifdef _MSC_VER
+  /* Work around a problem with MinGW builds of graphics libraries
+     not honoring calling conventions.  */
+#pragma optimize("g", off)
+#endif
+
 static void
 png_read_from_memory (png_ptr, data, length)
      png_structp png_ptr;
@@ -5704,6 +5715,11 @@
   tbr->index = tbr->index + length;
 }
 
+#ifdef _MSC_VER
+/* Restore normal optimization, as specified on the command line.  */
+#pragma optimize("", on)
+#endif
+
 /* Load PNG image IMG for use on frame F.  Value is non-zero if
    successful.  */