# HG changeset patch # User Juanma Barranquero # Date 1086137409 0 # Node ID ae9227eb83928826b082570afc3e5ca3a6ef756a # Parent 9d46d8e2e70b7a9e9d69c38c8e090f883ef8aab4 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. diff -r 9d46d8e2e70b -r ae9227eb8392 src/image.c --- 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. */