From d80e12104f139def9bea28a510bf1d7c103e20f9 Mon Sep 17 00:00:00 2001 From: Alexander Larsson Date: Wed, 29 Apr 2009 12:19:57 +0200 Subject: [PATCH] Ensure we're actually initializing the winsock library It turns out that just calling g_inet_address_get_type() isn't enough, since its marked G_GNUC_CONST, so the call is optimized away. If we assign the return value to a volatile location we ensure it is called. --- gio/ginetaddress.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/gio/ginetaddress.c b/gio/ginetaddress.c index bf6578b..592f76c 100644 --- a/gio/ginetaddress.c +++ b/gio/ginetaddress.c @@ -311,6 +311,7 @@ g_inet_address_new_from_string (const gchar *string) struct sockaddr_storage sa; struct sockaddr_in *sin = (struct sockaddr_in *)&sa; struct sockaddr_in6 *sin6 = (struct sockaddr_in6 *)&sa; + volatile GType type; gint len; #else /* !G_OS_WIN32 */ struct in_addr in_addr; @@ -318,7 +319,7 @@ g_inet_address_new_from_string (const gchar *string) #endif /* Make sure _g_networking_init() has been called */ - (void) g_inet_address_get_type (); + type = g_inet_address_get_type (); #ifdef G_OS_WIN32 memset (&sa, 0, sizeof (sa)); -- 2.7.4