gdip-pixbuf-loader r6 - in trunk: . src



Author: doml
Date: Mon Feb 18 16:50:10 2008
New Revision: 6
URL: http://svn.gnome.org/viewvc/gdip-pixbuf-loader?rev=6&view=rev

Log:
2008-02-18  Dominic Lachowicz <domlachowicz gmail com>

	* src/io-gdip-utils.c: Make GDI+ function pointers static so that we only load them once

Modified:
   trunk/ChangeLog
   trunk/src/io-gdip-utils.c
   trunk/src/io-gdip-utils.h

Modified: trunk/src/io-gdip-utils.c
==============================================================================
--- trunk/src/io-gdip-utils.c	(original)
+++ trunk/src/io-gdip-utils.c	Mon Feb 18 16:50:10 2008
@@ -32,9 +32,9 @@
 GpStatus WINGDIPAPI
 GdiplusStartup (ULONG_PTR *token,  const GdiplusStartupInput *input,  gpointer *output)
 {
-	GdiplusStartupFunc proc = NULL;
+	static GdiplusStartupFunc proc = NULL;
 
-	if (gdipluslib)			  
+	if (gdipluslib && !proc)
 		proc = (GdiplusStartupFunc) GetProcAddress(gdipluslib, "GdiplusStartup");	
 
 	if (!proc)
@@ -46,9 +46,9 @@
 GpStatus WINGDIPAPI
 GdipCreateBitmapFromStream (gpointer stream, GpBitmap** bitmap)
 {
-	GdipCreateBitmapFromStreamFunc proc = NULL;
+	static GdipCreateBitmapFromStreamFunc proc = NULL;
 
-	if (gdipluslib)
+	if (gdipluslib && !proc)
 		proc = (GdipCreateBitmapFromStreamFunc) GetProcAddress(gdipluslib, "GdipCreateBitmapFromStream");
 
 	if (!proc)
@@ -60,9 +60,9 @@
 GpStatus WINGDIPAPI
 GdipBitmapGetPixel(GpBitmap* bitmap, gint x, gint y, ARGB *color)
 {
-	GdipBitmapGetPixelFunc proc = NULL;
+	static GdipBitmapGetPixelFunc proc = NULL;
 
-	if (gdipluslib)
+	if (gdipluslib && !proc)
 		proc = (GdipBitmapGetPixelFunc) GetProcAddress(gdipluslib, "GdipBitmapGetPixel");
 
 	if (!proc)
@@ -74,9 +74,9 @@
 GpStatus WINGDIPAPI
 GdipGetImageHeight (GpImage* image, guint* height)
 {
-	GdipGetImageHeightFunc proc = NULL;
+	static GdipGetImageHeightFunc proc = NULL;
 
-	if (gdipluslib)
+	if (gdipluslib && !proc)
 		proc = (GdipGetImageHeightFunc) GetProcAddress(gdipluslib, "GdipGetImageHeight");
 
 	if (!proc)
@@ -88,9 +88,9 @@
 GpStatus WINGDIPAPI
 GdipDisposeImage (GpImage* image)
 {
-	GdipDisposeImageFunc proc = NULL;
+	static GdipDisposeImageFunc proc = NULL;
 
-	if (gdipluslib)
+	if (gdipluslib && !proc)
 		proc = (GdipDisposeImageFunc) GetProcAddress(gdipluslib, "GdipDisposeImage");
 
 	if (!proc)
@@ -102,9 +102,9 @@
 GpStatus WINGDIPAPI
 GdipGetImageWidth (GpImage* image, guint* width)
 {
-	GdipGetImageWidthFunc proc = NULL;
+	static GdipGetImageWidthFunc proc = NULL;
 
-	if (gdipluslib)
+	if (gdipluslib && !proc)
 		proc = (GdipGetImageWidthFunc) GetProcAddress(gdipluslib, "GdipGetImageWidth");
 
 	if (!proc)
@@ -118,7 +118,7 @@
  */
 
 gboolean
-io_gdip_init ()
+io_gdip_init (void)
 {
 	HRESULT hr;
 	GdiplusStartupInput input;

Modified: trunk/src/io-gdip-utils.h
==============================================================================
--- trunk/src/io-gdip-utils.h	(original)
+++ trunk/src/io-gdip-utils.h	Mon Feb 18 16:50:10 2008
@@ -24,7 +24,8 @@
 
 #include "io-gdip-native.h"
 
-gboolean io_gdip_init ();
+gboolean 
+io_gdip_init (void);
 
 GpBitmap *
 io_gdip_buffer_to_bitmap (const gchar *, size_t);



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]