mirror of
https://gitlab.gnome.org/GNOME/glib.git
synced 2025-03-03 14:42:10 +01:00
Increase to 100. 16 was rather low. (g_private_new_win32_impl): Can't use
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.
This commit is contained in:
parent
5a2950d041
commit
e94abca52d
@ -1,3 +1,13 @@
|
|||||||
|
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>
|
2006-02-24 Matthias Clasen <mclasen@redhat.com>
|
||||||
|
|
||||||
* === Released 2.10.0 ===
|
* === Released 2.10.0 ===
|
||||||
|
@ -44,6 +44,7 @@
|
|||||||
|
|
||||||
#include <process.h>
|
#include <process.h>
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
|
#include <stdio.h>
|
||||||
|
|
||||||
#define win32_check_for_error(what) G_STMT_START{ \
|
#define win32_check_for_error(what) G_STMT_START{ \
|
||||||
if (!(what)) \
|
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
|
/* As noted in the docs, GPrivate is a limited resource, here we take
|
||||||
* a rather low maximum to save memory, use GStaticPrivate instead. */
|
* 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];
|
static GDestroyNotify g_private_destructors[G_PRIVATE_MAX];
|
||||||
|
|
||||||
@ -322,8 +323,16 @@ g_private_new_win32_impl (GDestroyNotify destructor)
|
|||||||
GPrivate *result;
|
GPrivate *result;
|
||||||
EnterCriticalSection (&g_thread_global_spinlock);
|
EnterCriticalSection (&g_thread_global_spinlock);
|
||||||
if (g_private_next >= G_PRIVATE_MAX)
|
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;
|
g_private_destructors[g_private_next] = destructor;
|
||||||
result = GUINT_TO_POINTER (g_private_next);
|
result = GUINT_TO_POINTER (g_private_next);
|
||||||
g_private_next++;
|
g_private_next++;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user