+2006-03-02 Tor Lillqvist <tml@novell.com>
+
+ * gthread-win32.c (G_PRIVATE_MAX): Increase to 100. 16 was rather
+ low.
+ (g_private_new_win32_impl): Can't use g_error() here as
+ g_private_new() is called a few times by GLib internally before
+ the messaging system that g_error() requires is ready. Thanks to
+ Tim Janik for noticing. Just display a MessageBox() and abort()
+ instead.
+
2006-02-24 Matthias Clasen <mclasen@redhat.com>
* === Released 2.10.0 ===
#include <process.h>
#include <stdlib.h>
+#include <stdio.h>
#define win32_check_for_error(what) G_STMT_START{ \
if (!(what)) \
/* As noted in the docs, GPrivate is a limited resource, here we take
* a rather low maximum to save memory, use GStaticPrivate instead. */
-#define G_PRIVATE_MAX 16
+#define G_PRIVATE_MAX 100
static GDestroyNotify g_private_destructors[G_PRIVATE_MAX];
GPrivate *result;
EnterCriticalSection (&g_thread_global_spinlock);
if (g_private_next >= G_PRIVATE_MAX)
- g_error ("Too many GPrivate allocated. Their number is limited to %d.\n"
- "Use GStaticPrivate instead.\n", G_PRIVATE_MAX);
+ {
+ char buf[100];
+ sprintf (buf,
+ "Too many GPrivate allocated. Their number is limited to %d.",
+ G_PRIVATE_MAX);
+ MessageBox (NULL, buf, NULL, MB_ICONERROR|MB_SETFOREGROUND);
+ if (IsDebuggerPresent ())
+ G_BREAKPOINT ();
+ abort ();
+ }
g_private_destructors[g_private_next] = destructor;
result = GUINT_TO_POINTER (g_private_next);
g_private_next++;