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.
This commit is contained in:
Alexander Larsson 2009-04-29 12:19:57 +02:00
parent 49dfb50afc
commit d80e12104f

View File

@ -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));