From e94abca52d2608a9f5c76edefec96ac08183d6d2 Mon Sep 17 00:00:00 2001 From: Tor Lillqvist Date: Thu, 2 Mar 2006 12:05:40 +0000 Subject: [PATCH] Increase to 100. 16 was rather low. (g_private_new_win32_impl): Can't use 2006-03-02 Tor Lillqvist * 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. --- gthread/ChangeLog | 10 ++++++++++ gthread/gthread-win32.c | 15 ++++++++++++--- 2 files changed, 22 insertions(+), 3 deletions(-) diff --git a/gthread/ChangeLog b/gthread/ChangeLog index 846a1547..5f94d9d3 100644 --- a/gthread/ChangeLog +++ b/gthread/ChangeLog @@ -1,3 +1,13 @@ +2006-03-02 Tor Lillqvist + + * 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 * === Released 2.10.0 === diff --git a/gthread/gthread-win32.c b/gthread/gthread-win32.c index e90bc601..a04019de 100644 --- a/gthread/gthread-win32.c +++ b/gthread/gthread-win32.c @@ -44,6 +44,7 @@ #include #include +#include #define win32_check_for_error(what) G_STMT_START{ \ if (!(what)) \ @@ -70,7 +71,7 @@ static GTryEnterCriticalSectionFunc try_enter_critical_section = NULL; /* 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]; @@ -322,8 +323,16 @@ g_private_new_win32_impl (GDestroyNotify destructor) 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++; -- 2.34.1