mirror of
https://gitlab.gnome.org/GNOME/glib.git
synced 2025-02-07 11:25:48 +01:00
Sun Mar 14 17:50:35 1999 Tim Janik <timj@gtk.org>
Wed Mar 17 01:46:28 1999 Tim Janik <timj@gtk.org> * merges from glib-1-2: Sun Mar 14 17:50:35 1999 Tim Janik <timj@gtk.org> * gmem.c (g_mem_chunk_*): changed a bunch of g_assert() statements to g_return_if_fail(). (g_mem_profile): (g_mem_chunk_print): (g_mem_chunk_info): removed some extraneous "\n"s at the end of the log messages. * gtimer.c (g_timer_*): changed a bunch of g_assert() statements to g_return_if_fail(). * grel.c (g_*): changed a bunch of g_assert() statements to g_return_if_fail() and added some extra ones to check relation != NULL. Tue Mar 9 23:25:50 1999 Tim Janik <timj@gtk.org> * configure.in: check for working realloc (NULL,). * gmem.c (g_realloc): use malloc() for initial allocation on systems where realloc(NULL,) will not work (this is the case on SunOS, reported by Tom Geiger). Mon Mar 8 07:42:08 1999 Tim Janik <timj@gtk.org> * ghook.c (g_hook_unref): when !hook_list->is_setup, wrap the flag around the call to g_hook_free() to avoid spurious warnings (happens during destruction phase). 1999-03-02 Sebastian Wilhelmi <wilhelmi@ira.uka.de> * gmem.c: Fixed a stupid cut'n'paste error of mine. Thanks to Friedrich Dominicus <Friedrich.Dominicus@inka.de>
This commit is contained in:
parent
5d1e3dc14e
commit
5f17e39e2a
36
ChangeLog
36
ChangeLog
@ -1,3 +1,39 @@
|
||||
Wed Mar 17 01:46:28 1999 Tim Janik <timj@gtk.org>
|
||||
|
||||
* merges from glib-1-2:
|
||||
|
||||
Sun Mar 14 17:50:35 1999 Tim Janik <timj@gtk.org>
|
||||
|
||||
* gmem.c (g_mem_chunk_*): changed a bunch of g_assert() statements
|
||||
to g_return_if_fail().
|
||||
(g_mem_profile):
|
||||
(g_mem_chunk_print):
|
||||
(g_mem_chunk_info): removed some extraneous "\n"s at the end of the log
|
||||
messages.
|
||||
|
||||
* gtimer.c (g_timer_*): changed a bunch of g_assert() statements
|
||||
to g_return_if_fail().
|
||||
* grel.c (g_*): changed a bunch of g_assert() statements to
|
||||
g_return_if_fail() and added some extra ones to check relation != NULL.
|
||||
|
||||
Tue Mar 9 23:25:50 1999 Tim Janik <timj@gtk.org>
|
||||
|
||||
* configure.in: check for working realloc (NULL,).
|
||||
* gmem.c (g_realloc): use malloc() for initial allocation on systems
|
||||
where realloc(NULL,) will not work (this is the case on SunOS, reported
|
||||
by Tom Geiger).
|
||||
|
||||
Mon Mar 8 07:42:08 1999 Tim Janik <timj@gtk.org>
|
||||
|
||||
* ghook.c (g_hook_unref): when !hook_list->is_setup, wrap the
|
||||
flag around the call to g_hook_free() to avoid spurious
|
||||
warnings (happens during destruction phase).
|
||||
|
||||
1999-03-02 Sebastian Wilhelmi <wilhelmi@ira.uka.de>
|
||||
|
||||
* gmem.c: Fixed a stupid cut'n'paste error of mine. Thanks to
|
||||
Friedrich Dominicus <Friedrich.Dominicus@inka.de>
|
||||
|
||||
1999-03-16 Timur Bakeyev <mc@bat.ru>
|
||||
|
||||
* configure.in: Fix problem with pthread_create in libc, as running
|
||||
|
@ -1,3 +1,39 @@
|
||||
Wed Mar 17 01:46:28 1999 Tim Janik <timj@gtk.org>
|
||||
|
||||
* merges from glib-1-2:
|
||||
|
||||
Sun Mar 14 17:50:35 1999 Tim Janik <timj@gtk.org>
|
||||
|
||||
* gmem.c (g_mem_chunk_*): changed a bunch of g_assert() statements
|
||||
to g_return_if_fail().
|
||||
(g_mem_profile):
|
||||
(g_mem_chunk_print):
|
||||
(g_mem_chunk_info): removed some extraneous "\n"s at the end of the log
|
||||
messages.
|
||||
|
||||
* gtimer.c (g_timer_*): changed a bunch of g_assert() statements
|
||||
to g_return_if_fail().
|
||||
* grel.c (g_*): changed a bunch of g_assert() statements to
|
||||
g_return_if_fail() and added some extra ones to check relation != NULL.
|
||||
|
||||
Tue Mar 9 23:25:50 1999 Tim Janik <timj@gtk.org>
|
||||
|
||||
* configure.in: check for working realloc (NULL,).
|
||||
* gmem.c (g_realloc): use malloc() for initial allocation on systems
|
||||
where realloc(NULL,) will not work (this is the case on SunOS, reported
|
||||
by Tom Geiger).
|
||||
|
||||
Mon Mar 8 07:42:08 1999 Tim Janik <timj@gtk.org>
|
||||
|
||||
* ghook.c (g_hook_unref): when !hook_list->is_setup, wrap the
|
||||
flag around the call to g_hook_free() to avoid spurious
|
||||
warnings (happens during destruction phase).
|
||||
|
||||
1999-03-02 Sebastian Wilhelmi <wilhelmi@ira.uka.de>
|
||||
|
||||
* gmem.c: Fixed a stupid cut'n'paste error of mine. Thanks to
|
||||
Friedrich Dominicus <Friedrich.Dominicus@inka.de>
|
||||
|
||||
1999-03-16 Timur Bakeyev <mc@bat.ru>
|
||||
|
||||
* configure.in: Fix problem with pthread_create in libc, as running
|
||||
|
@ -1,3 +1,39 @@
|
||||
Wed Mar 17 01:46:28 1999 Tim Janik <timj@gtk.org>
|
||||
|
||||
* merges from glib-1-2:
|
||||
|
||||
Sun Mar 14 17:50:35 1999 Tim Janik <timj@gtk.org>
|
||||
|
||||
* gmem.c (g_mem_chunk_*): changed a bunch of g_assert() statements
|
||||
to g_return_if_fail().
|
||||
(g_mem_profile):
|
||||
(g_mem_chunk_print):
|
||||
(g_mem_chunk_info): removed some extraneous "\n"s at the end of the log
|
||||
messages.
|
||||
|
||||
* gtimer.c (g_timer_*): changed a bunch of g_assert() statements
|
||||
to g_return_if_fail().
|
||||
* grel.c (g_*): changed a bunch of g_assert() statements to
|
||||
g_return_if_fail() and added some extra ones to check relation != NULL.
|
||||
|
||||
Tue Mar 9 23:25:50 1999 Tim Janik <timj@gtk.org>
|
||||
|
||||
* configure.in: check for working realloc (NULL,).
|
||||
* gmem.c (g_realloc): use malloc() for initial allocation on systems
|
||||
where realloc(NULL,) will not work (this is the case on SunOS, reported
|
||||
by Tom Geiger).
|
||||
|
||||
Mon Mar 8 07:42:08 1999 Tim Janik <timj@gtk.org>
|
||||
|
||||
* ghook.c (g_hook_unref): when !hook_list->is_setup, wrap the
|
||||
flag around the call to g_hook_free() to avoid spurious
|
||||
warnings (happens during destruction phase).
|
||||
|
||||
1999-03-02 Sebastian Wilhelmi <wilhelmi@ira.uka.de>
|
||||
|
||||
* gmem.c: Fixed a stupid cut'n'paste error of mine. Thanks to
|
||||
Friedrich Dominicus <Friedrich.Dominicus@inka.de>
|
||||
|
||||
1999-03-16 Timur Bakeyev <mc@bat.ru>
|
||||
|
||||
* configure.in: Fix problem with pthread_create in libc, as running
|
||||
|
@ -1,3 +1,39 @@
|
||||
Wed Mar 17 01:46:28 1999 Tim Janik <timj@gtk.org>
|
||||
|
||||
* merges from glib-1-2:
|
||||
|
||||
Sun Mar 14 17:50:35 1999 Tim Janik <timj@gtk.org>
|
||||
|
||||
* gmem.c (g_mem_chunk_*): changed a bunch of g_assert() statements
|
||||
to g_return_if_fail().
|
||||
(g_mem_profile):
|
||||
(g_mem_chunk_print):
|
||||
(g_mem_chunk_info): removed some extraneous "\n"s at the end of the log
|
||||
messages.
|
||||
|
||||
* gtimer.c (g_timer_*): changed a bunch of g_assert() statements
|
||||
to g_return_if_fail().
|
||||
* grel.c (g_*): changed a bunch of g_assert() statements to
|
||||
g_return_if_fail() and added some extra ones to check relation != NULL.
|
||||
|
||||
Tue Mar 9 23:25:50 1999 Tim Janik <timj@gtk.org>
|
||||
|
||||
* configure.in: check for working realloc (NULL,).
|
||||
* gmem.c (g_realloc): use malloc() for initial allocation on systems
|
||||
where realloc(NULL,) will not work (this is the case on SunOS, reported
|
||||
by Tom Geiger).
|
||||
|
||||
Mon Mar 8 07:42:08 1999 Tim Janik <timj@gtk.org>
|
||||
|
||||
* ghook.c (g_hook_unref): when !hook_list->is_setup, wrap the
|
||||
flag around the call to g_hook_free() to avoid spurious
|
||||
warnings (happens during destruction phase).
|
||||
|
||||
1999-03-02 Sebastian Wilhelmi <wilhelmi@ira.uka.de>
|
||||
|
||||
* gmem.c: Fixed a stupid cut'n'paste error of mine. Thanks to
|
||||
Friedrich Dominicus <Friedrich.Dominicus@inka.de>
|
||||
|
||||
1999-03-16 Timur Bakeyev <mc@bat.ru>
|
||||
|
||||
* configure.in: Fix problem with pthread_create in libc, as running
|
||||
|
@ -1,3 +1,39 @@
|
||||
Wed Mar 17 01:46:28 1999 Tim Janik <timj@gtk.org>
|
||||
|
||||
* merges from glib-1-2:
|
||||
|
||||
Sun Mar 14 17:50:35 1999 Tim Janik <timj@gtk.org>
|
||||
|
||||
* gmem.c (g_mem_chunk_*): changed a bunch of g_assert() statements
|
||||
to g_return_if_fail().
|
||||
(g_mem_profile):
|
||||
(g_mem_chunk_print):
|
||||
(g_mem_chunk_info): removed some extraneous "\n"s at the end of the log
|
||||
messages.
|
||||
|
||||
* gtimer.c (g_timer_*): changed a bunch of g_assert() statements
|
||||
to g_return_if_fail().
|
||||
* grel.c (g_*): changed a bunch of g_assert() statements to
|
||||
g_return_if_fail() and added some extra ones to check relation != NULL.
|
||||
|
||||
Tue Mar 9 23:25:50 1999 Tim Janik <timj@gtk.org>
|
||||
|
||||
* configure.in: check for working realloc (NULL,).
|
||||
* gmem.c (g_realloc): use malloc() for initial allocation on systems
|
||||
where realloc(NULL,) will not work (this is the case on SunOS, reported
|
||||
by Tom Geiger).
|
||||
|
||||
Mon Mar 8 07:42:08 1999 Tim Janik <timj@gtk.org>
|
||||
|
||||
* ghook.c (g_hook_unref): when !hook_list->is_setup, wrap the
|
||||
flag around the call to g_hook_free() to avoid spurious
|
||||
warnings (happens during destruction phase).
|
||||
|
||||
1999-03-02 Sebastian Wilhelmi <wilhelmi@ira.uka.de>
|
||||
|
||||
* gmem.c: Fixed a stupid cut'n'paste error of mine. Thanks to
|
||||
Friedrich Dominicus <Friedrich.Dominicus@inka.de>
|
||||
|
||||
1999-03-16 Timur Bakeyev <mc@bat.ru>
|
||||
|
||||
* configure.in: Fix problem with pthread_create in libc, as running
|
||||
|
@ -1,3 +1,39 @@
|
||||
Wed Mar 17 01:46:28 1999 Tim Janik <timj@gtk.org>
|
||||
|
||||
* merges from glib-1-2:
|
||||
|
||||
Sun Mar 14 17:50:35 1999 Tim Janik <timj@gtk.org>
|
||||
|
||||
* gmem.c (g_mem_chunk_*): changed a bunch of g_assert() statements
|
||||
to g_return_if_fail().
|
||||
(g_mem_profile):
|
||||
(g_mem_chunk_print):
|
||||
(g_mem_chunk_info): removed some extraneous "\n"s at the end of the log
|
||||
messages.
|
||||
|
||||
* gtimer.c (g_timer_*): changed a bunch of g_assert() statements
|
||||
to g_return_if_fail().
|
||||
* grel.c (g_*): changed a bunch of g_assert() statements to
|
||||
g_return_if_fail() and added some extra ones to check relation != NULL.
|
||||
|
||||
Tue Mar 9 23:25:50 1999 Tim Janik <timj@gtk.org>
|
||||
|
||||
* configure.in: check for working realloc (NULL,).
|
||||
* gmem.c (g_realloc): use malloc() for initial allocation on systems
|
||||
where realloc(NULL,) will not work (this is the case on SunOS, reported
|
||||
by Tom Geiger).
|
||||
|
||||
Mon Mar 8 07:42:08 1999 Tim Janik <timj@gtk.org>
|
||||
|
||||
* ghook.c (g_hook_unref): when !hook_list->is_setup, wrap the
|
||||
flag around the call to g_hook_free() to avoid spurious
|
||||
warnings (happens during destruction phase).
|
||||
|
||||
1999-03-02 Sebastian Wilhelmi <wilhelmi@ira.uka.de>
|
||||
|
||||
* gmem.c: Fixed a stupid cut'n'paste error of mine. Thanks to
|
||||
Friedrich Dominicus <Friedrich.Dominicus@inka.de>
|
||||
|
||||
1999-03-16 Timur Bakeyev <mc@bat.ru>
|
||||
|
||||
* configure.in: Fix problem with pthread_create in libc, as running
|
||||
|
@ -1,3 +1,39 @@
|
||||
Wed Mar 17 01:46:28 1999 Tim Janik <timj@gtk.org>
|
||||
|
||||
* merges from glib-1-2:
|
||||
|
||||
Sun Mar 14 17:50:35 1999 Tim Janik <timj@gtk.org>
|
||||
|
||||
* gmem.c (g_mem_chunk_*): changed a bunch of g_assert() statements
|
||||
to g_return_if_fail().
|
||||
(g_mem_profile):
|
||||
(g_mem_chunk_print):
|
||||
(g_mem_chunk_info): removed some extraneous "\n"s at the end of the log
|
||||
messages.
|
||||
|
||||
* gtimer.c (g_timer_*): changed a bunch of g_assert() statements
|
||||
to g_return_if_fail().
|
||||
* grel.c (g_*): changed a bunch of g_assert() statements to
|
||||
g_return_if_fail() and added some extra ones to check relation != NULL.
|
||||
|
||||
Tue Mar 9 23:25:50 1999 Tim Janik <timj@gtk.org>
|
||||
|
||||
* configure.in: check for working realloc (NULL,).
|
||||
* gmem.c (g_realloc): use malloc() for initial allocation on systems
|
||||
where realloc(NULL,) will not work (this is the case on SunOS, reported
|
||||
by Tom Geiger).
|
||||
|
||||
Mon Mar 8 07:42:08 1999 Tim Janik <timj@gtk.org>
|
||||
|
||||
* ghook.c (g_hook_unref): when !hook_list->is_setup, wrap the
|
||||
flag around the call to g_hook_free() to avoid spurious
|
||||
warnings (happens during destruction phase).
|
||||
|
||||
1999-03-02 Sebastian Wilhelmi <wilhelmi@ira.uka.de>
|
||||
|
||||
* gmem.c: Fixed a stupid cut'n'paste error of mine. Thanks to
|
||||
Friedrich Dominicus <Friedrich.Dominicus@inka.de>
|
||||
|
||||
1999-03-16 Timur Bakeyev <mc@bat.ru>
|
||||
|
||||
* configure.in: Fix problem with pthread_create in libc, as running
|
||||
|
@ -1,3 +1,39 @@
|
||||
Wed Mar 17 01:46:28 1999 Tim Janik <timj@gtk.org>
|
||||
|
||||
* merges from glib-1-2:
|
||||
|
||||
Sun Mar 14 17:50:35 1999 Tim Janik <timj@gtk.org>
|
||||
|
||||
* gmem.c (g_mem_chunk_*): changed a bunch of g_assert() statements
|
||||
to g_return_if_fail().
|
||||
(g_mem_profile):
|
||||
(g_mem_chunk_print):
|
||||
(g_mem_chunk_info): removed some extraneous "\n"s at the end of the log
|
||||
messages.
|
||||
|
||||
* gtimer.c (g_timer_*): changed a bunch of g_assert() statements
|
||||
to g_return_if_fail().
|
||||
* grel.c (g_*): changed a bunch of g_assert() statements to
|
||||
g_return_if_fail() and added some extra ones to check relation != NULL.
|
||||
|
||||
Tue Mar 9 23:25:50 1999 Tim Janik <timj@gtk.org>
|
||||
|
||||
* configure.in: check for working realloc (NULL,).
|
||||
* gmem.c (g_realloc): use malloc() for initial allocation on systems
|
||||
where realloc(NULL,) will not work (this is the case on SunOS, reported
|
||||
by Tom Geiger).
|
||||
|
||||
Mon Mar 8 07:42:08 1999 Tim Janik <timj@gtk.org>
|
||||
|
||||
* ghook.c (g_hook_unref): when !hook_list->is_setup, wrap the
|
||||
flag around the call to g_hook_free() to avoid spurious
|
||||
warnings (happens during destruction phase).
|
||||
|
||||
1999-03-02 Sebastian Wilhelmi <wilhelmi@ira.uka.de>
|
||||
|
||||
* gmem.c: Fixed a stupid cut'n'paste error of mine. Thanks to
|
||||
Friedrich Dominicus <Friedrich.Dominicus@inka.de>
|
||||
|
||||
1999-03-16 Timur Bakeyev <mc@bat.ru>
|
||||
|
||||
* configure.in: Fix problem with pthread_create in libc, as running
|
||||
|
@ -37,6 +37,8 @@
|
||||
#undef ENABLE_MEM_CHECK
|
||||
#undef ENABLE_MEM_PROFILE
|
||||
|
||||
#undef REALLOC_0_WORKS
|
||||
|
||||
#undef G_COMPILED_WITH_DEBUGGING
|
||||
#undef G_THREADS_ENABLED
|
||||
|
||||
@ -51,7 +53,9 @@
|
||||
#undef HAVE_LIMITS_H
|
||||
#undef HAVE_LONG_DOUBLE
|
||||
#undef HAVE_POLL
|
||||
#undef HAVE_PTHREAD_COND_TIMEDWAIT_POSIX
|
||||
#undef HAVE_PTHREAD_GETSPECIFIC_POSIX
|
||||
#undef HAVE_PTHREAD_MUTEX_TRYLOCK_POSIX
|
||||
#undef HAVE_PWD_H
|
||||
#undef HAVE_SYS_PARAM_H
|
||||
#undef HAVE_SYS_POLL_H
|
||||
|
16
configure.in
16
configure.in
@ -320,6 +320,22 @@ else
|
||||
fi
|
||||
fi
|
||||
|
||||
dnl *** check for sane realloc() ***
|
||||
AC_MSG_CHECKING(whether realloc (NULL,) will work)
|
||||
AC_CACHE_VAL(glib_cv_sane_realloc,[
|
||||
AC_TRY_RUN([
|
||||
#include <stdlib.h>
|
||||
int main() {
|
||||
return realloc (0, sizeof (int)) == 0;
|
||||
}],
|
||||
glib_cv_sane_realloc=yes
|
||||
AC_DEFINE(REALLOC_0_WORKS)
|
||||
,
|
||||
glib_cv_sane_realloc=no
|
||||
,)
|
||||
])
|
||||
AC_MSG_RESULT($glib_cv_sane_realloc)
|
||||
|
||||
|
||||
dnl **********************
|
||||
dnl *** va_copy checks ***
|
||||
|
21
ghook.c
21
ghook.c
@ -177,6 +177,7 @@ g_hook_unref (GHookList *hook_list,
|
||||
GHook *hook)
|
||||
{
|
||||
g_return_if_fail (hook_list != NULL);
|
||||
g_return_if_fail (hook_list->hook_memchunk != NULL);
|
||||
g_return_if_fail (hook != NULL);
|
||||
g_return_if_fail (hook->ref_count > 0);
|
||||
|
||||
@ -196,15 +197,21 @@ g_hook_unref (GHookList *hook_list,
|
||||
hook->next = NULL;
|
||||
}
|
||||
hook->prev = NULL;
|
||||
|
||||
g_hook_free (hook_list, hook);
|
||||
|
||||
if (!hook_list->hooks &&
|
||||
!hook_list->is_setup)
|
||||
|
||||
if (!hook_list->is_setup)
|
||||
{
|
||||
g_mem_chunk_destroy (hook_list->hook_memchunk);
|
||||
hook_list->hook_memchunk = NULL;
|
||||
hook_list->is_setup = TRUE;
|
||||
g_hook_free (hook_list, hook);
|
||||
hook_list->is_setup = FALSE;
|
||||
|
||||
if (!hook_list->hooks)
|
||||
{
|
||||
g_mem_chunk_destroy (hook_list->hook_memchunk);
|
||||
hook_list->hook_memchunk = NULL;
|
||||
}
|
||||
}
|
||||
else
|
||||
g_hook_free (hook_list, hook);
|
||||
}
|
||||
}
|
||||
|
||||
|
21
glib/ghook.c
21
glib/ghook.c
@ -177,6 +177,7 @@ g_hook_unref (GHookList *hook_list,
|
||||
GHook *hook)
|
||||
{
|
||||
g_return_if_fail (hook_list != NULL);
|
||||
g_return_if_fail (hook_list->hook_memchunk != NULL);
|
||||
g_return_if_fail (hook != NULL);
|
||||
g_return_if_fail (hook->ref_count > 0);
|
||||
|
||||
@ -196,15 +197,21 @@ g_hook_unref (GHookList *hook_list,
|
||||
hook->next = NULL;
|
||||
}
|
||||
hook->prev = NULL;
|
||||
|
||||
g_hook_free (hook_list, hook);
|
||||
|
||||
if (!hook_list->hooks &&
|
||||
!hook_list->is_setup)
|
||||
|
||||
if (!hook_list->is_setup)
|
||||
{
|
||||
g_mem_chunk_destroy (hook_list->hook_memchunk);
|
||||
hook_list->hook_memchunk = NULL;
|
||||
hook_list->is_setup = TRUE;
|
||||
g_hook_free (hook_list, hook);
|
||||
hook_list->is_setup = FALSE;
|
||||
|
||||
if (!hook_list->hooks)
|
||||
{
|
||||
g_mem_chunk_destroy (hook_list->hook_memchunk);
|
||||
hook_list->hook_memchunk = NULL;
|
||||
}
|
||||
}
|
||||
else
|
||||
g_hook_free (hook_list, hook);
|
||||
}
|
||||
}
|
||||
|
||||
|
38
glib/gmem.c
38
glib/gmem.c
@ -62,7 +62,7 @@
|
||||
#define ENTER_MEM_CHUNK_ROUTINE() \
|
||||
g_static_set (allocating_for_mem_chunk, \
|
||||
g_static_get (allocating_for_mem_chunk) + 1)
|
||||
#define ENTER_MEM_CHUNK_ROUTINE() \
|
||||
#define LEAVE_MEM_CHUNK_ROUTINE() \
|
||||
g_static_set (allocating_for_mem_chunk, \
|
||||
g_static_get (allocating_for_mem_chunk) - 1)
|
||||
#else
|
||||
@ -309,7 +309,13 @@ g_realloc (gpointer mem,
|
||||
|
||||
|
||||
if (!mem)
|
||||
p = (gpointer) realloc (NULL, size);
|
||||
{
|
||||
#ifdef REALLOC_0_WORKS
|
||||
p = (gpointer) realloc (NULL, size);
|
||||
#else /* !REALLOC_0_WORKS */
|
||||
p = (gpointer) malloc (size);
|
||||
#endif /* !REALLOC_0_WORKS */
|
||||
}
|
||||
else
|
||||
{
|
||||
#if defined(ENABLE_MEM_PROFILE) || defined(ENABLE_MEM_CHECK)
|
||||
@ -429,15 +435,15 @@ g_mem_profile (void)
|
||||
for (i = 0; i < (MEM_PROFILE_TABLE_SIZE - 1); i++)
|
||||
if (local_allocations[i] > 0)
|
||||
g_log (g_log_domain_glib, G_LOG_LEVEL_INFO,
|
||||
"%lu allocations of %d bytes\n", local_allocations[i], i + 1);
|
||||
"%lu allocations of %d bytes", local_allocations[i], i + 1);
|
||||
|
||||
if (local_allocations[MEM_PROFILE_TABLE_SIZE - 1] > 0)
|
||||
g_log (g_log_domain_glib, G_LOG_LEVEL_INFO,
|
||||
"%lu allocations of greater than %d bytes\n",
|
||||
"%lu allocations of greater than %d bytes",
|
||||
local_allocations[MEM_PROFILE_TABLE_SIZE - 1], MEM_PROFILE_TABLE_SIZE - 1);
|
||||
g_log (g_log_domain_glib, G_LOG_LEVEL_INFO, "%lu bytes allocated\n", local_allocated_mem);
|
||||
g_log (g_log_domain_glib, G_LOG_LEVEL_INFO, "%lu bytes freed\n", local_freed_mem);
|
||||
g_log (g_log_domain_glib, G_LOG_LEVEL_INFO, "%lu bytes in use\n", local_allocated_mem - local_freed_mem);
|
||||
g_log (g_log_domain_glib, G_LOG_LEVEL_INFO, "%lu bytes allocated", local_allocated_mem);
|
||||
g_log (g_log_domain_glib, G_LOG_LEVEL_INFO, "%lu bytes freed", local_freed_mem);
|
||||
g_log (g_log_domain_glib, G_LOG_LEVEL_INFO, "%lu bytes in use", local_allocated_mem - local_freed_mem);
|
||||
#endif /* ENABLE_MEM_PROFILE */
|
||||
}
|
||||
|
||||
@ -525,7 +531,7 @@ g_mem_chunk_destroy (GMemChunk *mem_chunk)
|
||||
GMemArea *mem_areas;
|
||||
GMemArea *temp_area;
|
||||
|
||||
g_assert (mem_chunk != NULL);
|
||||
g_return_if_fail (mem_chunk != NULL);
|
||||
|
||||
ENTER_MEM_CHUNK_ROUTINE();
|
||||
|
||||
@ -566,7 +572,7 @@ g_mem_chunk_alloc (GMemChunk *mem_chunk)
|
||||
|
||||
ENTER_MEM_CHUNK_ROUTINE();
|
||||
|
||||
g_assert (mem_chunk != NULL);
|
||||
g_return_val_if_fail (mem_chunk != NULL, NULL);
|
||||
|
||||
rmem_chunk = (GRealMemChunk*) mem_chunk;
|
||||
|
||||
@ -714,8 +720,8 @@ g_mem_chunk_free (GMemChunk *mem_chunk,
|
||||
GMemArea *temp_area;
|
||||
GFreeAtom *free_atom;
|
||||
|
||||
g_assert (mem_chunk != NULL);
|
||||
g_assert (mem != NULL);
|
||||
g_return_if_fail (mem_chunk != NULL);
|
||||
g_return_if_fail (mem != NULL);
|
||||
|
||||
ENTER_MEM_CHUNK_ROUTINE();
|
||||
|
||||
@ -757,7 +763,7 @@ g_mem_chunk_clean (GMemChunk *mem_chunk)
|
||||
GFreeAtom *temp_free_atom;
|
||||
gpointer mem;
|
||||
|
||||
g_assert (mem_chunk != NULL);
|
||||
g_return_if_fail (mem_chunk != NULL);
|
||||
|
||||
rmem_chunk = (GRealMemChunk*) mem_chunk;
|
||||
|
||||
@ -821,7 +827,7 @@ g_mem_chunk_reset (GMemChunk *mem_chunk)
|
||||
GMemArea *mem_areas;
|
||||
GMemArea *temp_area;
|
||||
|
||||
g_assert (mem_chunk != NULL);
|
||||
g_return_if_fail (mem_chunk != NULL);
|
||||
|
||||
rmem_chunk = (GRealMemChunk*) mem_chunk;
|
||||
|
||||
@ -851,7 +857,7 @@ g_mem_chunk_print (GMemChunk *mem_chunk)
|
||||
GMemArea *mem_areas;
|
||||
gulong mem;
|
||||
|
||||
g_assert (mem_chunk != NULL);
|
||||
g_return_if_fail (mem_chunk != NULL);
|
||||
|
||||
rmem_chunk = (GRealMemChunk*) mem_chunk;
|
||||
mem_areas = rmem_chunk->mem_areas;
|
||||
@ -864,7 +870,7 @@ g_mem_chunk_print (GMemChunk *mem_chunk)
|
||||
}
|
||||
|
||||
g_log (g_log_domain_glib, G_LOG_LEVEL_INFO,
|
||||
"%s: %ld bytes using %d mem areas\n",
|
||||
"%s: %ld bytes using %d mem areas",
|
||||
rmem_chunk->name, mem, rmem_chunk->num_mem_areas);
|
||||
}
|
||||
|
||||
@ -884,7 +890,7 @@ g_mem_chunk_info (void)
|
||||
}
|
||||
g_mutex_unlock (mem_chunks_lock);
|
||||
|
||||
g_log (g_log_domain_glib, G_LOG_LEVEL_INFO, "%d mem chunks\n", count);
|
||||
g_log (g_log_domain_glib, G_LOG_LEVEL_INFO, "%d mem chunks", count);
|
||||
|
||||
g_mutex_lock (mem_chunks_lock);
|
||||
mem_chunk = mem_chunks;
|
||||
|
36
glib/grel.c
36
glib/grel.c
@ -153,8 +153,10 @@ g_relation_index (GRelation *relation,
|
||||
GCompareFunc key_compare_func)
|
||||
{
|
||||
GRealRelation *rel = (GRealRelation *) relation;
|
||||
|
||||
g_return_if_fail (relation != NULL);
|
||||
|
||||
g_assert (rel->count == 0 && rel->hashed_tuple_tables[field] == NULL);
|
||||
g_return_if_fail (rel->count == 0 && rel->hashed_tuple_tables[field] == NULL);
|
||||
|
||||
rel->hashed_tuple_tables[field] = g_hash_table_new (hash_func, key_compare_func);
|
||||
}
|
||||
@ -204,7 +206,9 @@ g_relation_insert (GRelation *relation,
|
||||
}
|
||||
|
||||
static void
|
||||
g_relation_delete_tuple (gpointer tuple_key, gpointer tuple_value, gpointer user_data)
|
||||
g_relation_delete_tuple (gpointer tuple_key,
|
||||
gpointer tuple_value,
|
||||
gpointer user_data)
|
||||
{
|
||||
gpointer *tuple = (gpointer*) tuple_value;
|
||||
GRealRelation *rel = (GRealRelation *) user_data;
|
||||
@ -238,16 +242,17 @@ g_relation_delete_tuple (gpointer tuple_key, gpointer tuple_value, gpointer user
|
||||
}
|
||||
|
||||
gint
|
||||
g_relation_delete (GRelation *relation,
|
||||
g_relation_delete (GRelation *relation,
|
||||
gconstpointer key,
|
||||
gint field)
|
||||
gint field)
|
||||
{
|
||||
GRealRelation *rel = (GRealRelation *) relation;
|
||||
GHashTable *table = rel->hashed_tuple_tables[field];
|
||||
GHashTable *key_table;
|
||||
gint count = rel->count;
|
||||
|
||||
g_assert (table);
|
||||
g_return_val_if_fail (relation != NULL, 0);
|
||||
g_return_val_if_fail (table != NULL, 0);
|
||||
|
||||
key_table = g_hash_table_lookup (table, key);
|
||||
|
||||
@ -268,7 +273,9 @@ g_relation_delete (GRelation *relation,
|
||||
}
|
||||
|
||||
static void
|
||||
g_relation_select_tuple (gpointer tuple_key, gpointer tuple_value, gpointer user_data)
|
||||
g_relation_select_tuple (gpointer tuple_key,
|
||||
gpointer tuple_value,
|
||||
gpointer user_data)
|
||||
{
|
||||
gpointer *tuple = (gpointer*) tuple_value;
|
||||
GRealTuples *tuples = (GRealTuples*) user_data;
|
||||
@ -284,9 +291,9 @@ g_relation_select_tuple (gpointer tuple_key, gpointer tuple_value, gpointer user
|
||||
}
|
||||
|
||||
GTuples*
|
||||
g_relation_select (GRelation *relation,
|
||||
g_relation_select (GRelation *relation,
|
||||
gconstpointer key,
|
||||
gint field)
|
||||
gint field)
|
||||
{
|
||||
GRealRelation *rel = (GRealRelation *) relation;
|
||||
GHashTable *table = rel->hashed_tuple_tables[field];
|
||||
@ -294,7 +301,8 @@ g_relation_select (GRelation *relation,
|
||||
GRealTuples *tuples = g_new0 (GRealTuples, 1);
|
||||
gint count;
|
||||
|
||||
g_assert (table);
|
||||
g_return_val_if_fail (relation != NULL, NULL);
|
||||
g_return_val_if_fail (table != NULL, NULL);
|
||||
|
||||
key_table = g_hash_table_lookup (table, key);
|
||||
|
||||
@ -314,15 +322,16 @@ g_relation_select (GRelation *relation,
|
||||
}
|
||||
|
||||
gint
|
||||
g_relation_count (GRelation *relation,
|
||||
g_relation_count (GRelation *relation,
|
||||
gconstpointer key,
|
||||
gint field)
|
||||
gint field)
|
||||
{
|
||||
GRealRelation *rel = (GRealRelation *) relation;
|
||||
GHashTable *table = rel->hashed_tuple_tables[field];
|
||||
GHashTable *key_table;
|
||||
|
||||
g_assert (table);
|
||||
g_return_val_if_fail (relation != NULL, 0);
|
||||
g_return_val_if_fail (table != NULL, 0);
|
||||
|
||||
key_table = g_hash_table_lookup (table, key);
|
||||
|
||||
@ -374,7 +383,8 @@ g_tuples_index (GTuples *tuples0,
|
||||
{
|
||||
GRealTuples *tuples = (GRealTuples*) tuples0;
|
||||
|
||||
g_assert (field < tuples->width);
|
||||
g_return_val_if_fail (tuples0 != NULL, NULL);
|
||||
g_return_val_if_fail (field < tuples->width, NULL);
|
||||
|
||||
return tuples->data[index * tuples->width + field];
|
||||
}
|
||||
|
@ -79,7 +79,7 @@ g_timer_new (void)
|
||||
void
|
||||
g_timer_destroy (GTimer *timer)
|
||||
{
|
||||
g_assert (timer != NULL);
|
||||
g_return_if_fail (timer != NULL);
|
||||
|
||||
g_free (timer);
|
||||
}
|
||||
@ -89,7 +89,7 @@ g_timer_start (GTimer *timer)
|
||||
{
|
||||
GRealTimer *rtimer;
|
||||
|
||||
g_assert (timer != NULL);
|
||||
g_return_if_fail (timer != NULL);
|
||||
|
||||
rtimer = (GRealTimer*) timer;
|
||||
rtimer->active = TRUE;
|
||||
@ -106,7 +106,7 @@ g_timer_stop (GTimer *timer)
|
||||
{
|
||||
GRealTimer *rtimer;
|
||||
|
||||
g_assert (timer != NULL);
|
||||
g_return_if_fail (timer != NULL);
|
||||
|
||||
rtimer = (GRealTimer*) timer;
|
||||
rtimer->active = FALSE;
|
||||
@ -123,7 +123,7 @@ g_timer_reset (GTimer *timer)
|
||||
{
|
||||
GRealTimer *rtimer;
|
||||
|
||||
g_assert (timer != NULL);
|
||||
g_return_if_fail (timer != NULL);
|
||||
|
||||
rtimer = (GRealTimer*) timer;
|
||||
|
||||
|
38
gmem.c
38
gmem.c
@ -62,7 +62,7 @@
|
||||
#define ENTER_MEM_CHUNK_ROUTINE() \
|
||||
g_static_set (allocating_for_mem_chunk, \
|
||||
g_static_get (allocating_for_mem_chunk) + 1)
|
||||
#define ENTER_MEM_CHUNK_ROUTINE() \
|
||||
#define LEAVE_MEM_CHUNK_ROUTINE() \
|
||||
g_static_set (allocating_for_mem_chunk, \
|
||||
g_static_get (allocating_for_mem_chunk) - 1)
|
||||
#else
|
||||
@ -309,7 +309,13 @@ g_realloc (gpointer mem,
|
||||
|
||||
|
||||
if (!mem)
|
||||
p = (gpointer) realloc (NULL, size);
|
||||
{
|
||||
#ifdef REALLOC_0_WORKS
|
||||
p = (gpointer) realloc (NULL, size);
|
||||
#else /* !REALLOC_0_WORKS */
|
||||
p = (gpointer) malloc (size);
|
||||
#endif /* !REALLOC_0_WORKS */
|
||||
}
|
||||
else
|
||||
{
|
||||
#if defined(ENABLE_MEM_PROFILE) || defined(ENABLE_MEM_CHECK)
|
||||
@ -429,15 +435,15 @@ g_mem_profile (void)
|
||||
for (i = 0; i < (MEM_PROFILE_TABLE_SIZE - 1); i++)
|
||||
if (local_allocations[i] > 0)
|
||||
g_log (g_log_domain_glib, G_LOG_LEVEL_INFO,
|
||||
"%lu allocations of %d bytes\n", local_allocations[i], i + 1);
|
||||
"%lu allocations of %d bytes", local_allocations[i], i + 1);
|
||||
|
||||
if (local_allocations[MEM_PROFILE_TABLE_SIZE - 1] > 0)
|
||||
g_log (g_log_domain_glib, G_LOG_LEVEL_INFO,
|
||||
"%lu allocations of greater than %d bytes\n",
|
||||
"%lu allocations of greater than %d bytes",
|
||||
local_allocations[MEM_PROFILE_TABLE_SIZE - 1], MEM_PROFILE_TABLE_SIZE - 1);
|
||||
g_log (g_log_domain_glib, G_LOG_LEVEL_INFO, "%lu bytes allocated\n", local_allocated_mem);
|
||||
g_log (g_log_domain_glib, G_LOG_LEVEL_INFO, "%lu bytes freed\n", local_freed_mem);
|
||||
g_log (g_log_domain_glib, G_LOG_LEVEL_INFO, "%lu bytes in use\n", local_allocated_mem - local_freed_mem);
|
||||
g_log (g_log_domain_glib, G_LOG_LEVEL_INFO, "%lu bytes allocated", local_allocated_mem);
|
||||
g_log (g_log_domain_glib, G_LOG_LEVEL_INFO, "%lu bytes freed", local_freed_mem);
|
||||
g_log (g_log_domain_glib, G_LOG_LEVEL_INFO, "%lu bytes in use", local_allocated_mem - local_freed_mem);
|
||||
#endif /* ENABLE_MEM_PROFILE */
|
||||
}
|
||||
|
||||
@ -525,7 +531,7 @@ g_mem_chunk_destroy (GMemChunk *mem_chunk)
|
||||
GMemArea *mem_areas;
|
||||
GMemArea *temp_area;
|
||||
|
||||
g_assert (mem_chunk != NULL);
|
||||
g_return_if_fail (mem_chunk != NULL);
|
||||
|
||||
ENTER_MEM_CHUNK_ROUTINE();
|
||||
|
||||
@ -566,7 +572,7 @@ g_mem_chunk_alloc (GMemChunk *mem_chunk)
|
||||
|
||||
ENTER_MEM_CHUNK_ROUTINE();
|
||||
|
||||
g_assert (mem_chunk != NULL);
|
||||
g_return_val_if_fail (mem_chunk != NULL, NULL);
|
||||
|
||||
rmem_chunk = (GRealMemChunk*) mem_chunk;
|
||||
|
||||
@ -714,8 +720,8 @@ g_mem_chunk_free (GMemChunk *mem_chunk,
|
||||
GMemArea *temp_area;
|
||||
GFreeAtom *free_atom;
|
||||
|
||||
g_assert (mem_chunk != NULL);
|
||||
g_assert (mem != NULL);
|
||||
g_return_if_fail (mem_chunk != NULL);
|
||||
g_return_if_fail (mem != NULL);
|
||||
|
||||
ENTER_MEM_CHUNK_ROUTINE();
|
||||
|
||||
@ -757,7 +763,7 @@ g_mem_chunk_clean (GMemChunk *mem_chunk)
|
||||
GFreeAtom *temp_free_atom;
|
||||
gpointer mem;
|
||||
|
||||
g_assert (mem_chunk != NULL);
|
||||
g_return_if_fail (mem_chunk != NULL);
|
||||
|
||||
rmem_chunk = (GRealMemChunk*) mem_chunk;
|
||||
|
||||
@ -821,7 +827,7 @@ g_mem_chunk_reset (GMemChunk *mem_chunk)
|
||||
GMemArea *mem_areas;
|
||||
GMemArea *temp_area;
|
||||
|
||||
g_assert (mem_chunk != NULL);
|
||||
g_return_if_fail (mem_chunk != NULL);
|
||||
|
||||
rmem_chunk = (GRealMemChunk*) mem_chunk;
|
||||
|
||||
@ -851,7 +857,7 @@ g_mem_chunk_print (GMemChunk *mem_chunk)
|
||||
GMemArea *mem_areas;
|
||||
gulong mem;
|
||||
|
||||
g_assert (mem_chunk != NULL);
|
||||
g_return_if_fail (mem_chunk != NULL);
|
||||
|
||||
rmem_chunk = (GRealMemChunk*) mem_chunk;
|
||||
mem_areas = rmem_chunk->mem_areas;
|
||||
@ -864,7 +870,7 @@ g_mem_chunk_print (GMemChunk *mem_chunk)
|
||||
}
|
||||
|
||||
g_log (g_log_domain_glib, G_LOG_LEVEL_INFO,
|
||||
"%s: %ld bytes using %d mem areas\n",
|
||||
"%s: %ld bytes using %d mem areas",
|
||||
rmem_chunk->name, mem, rmem_chunk->num_mem_areas);
|
||||
}
|
||||
|
||||
@ -884,7 +890,7 @@ g_mem_chunk_info (void)
|
||||
}
|
||||
g_mutex_unlock (mem_chunks_lock);
|
||||
|
||||
g_log (g_log_domain_glib, G_LOG_LEVEL_INFO, "%d mem chunks\n", count);
|
||||
g_log (g_log_domain_glib, G_LOG_LEVEL_INFO, "%d mem chunks", count);
|
||||
|
||||
g_mutex_lock (mem_chunks_lock);
|
||||
mem_chunk = mem_chunks;
|
||||
|
36
grel.c
36
grel.c
@ -153,8 +153,10 @@ g_relation_index (GRelation *relation,
|
||||
GCompareFunc key_compare_func)
|
||||
{
|
||||
GRealRelation *rel = (GRealRelation *) relation;
|
||||
|
||||
g_return_if_fail (relation != NULL);
|
||||
|
||||
g_assert (rel->count == 0 && rel->hashed_tuple_tables[field] == NULL);
|
||||
g_return_if_fail (rel->count == 0 && rel->hashed_tuple_tables[field] == NULL);
|
||||
|
||||
rel->hashed_tuple_tables[field] = g_hash_table_new (hash_func, key_compare_func);
|
||||
}
|
||||
@ -204,7 +206,9 @@ g_relation_insert (GRelation *relation,
|
||||
}
|
||||
|
||||
static void
|
||||
g_relation_delete_tuple (gpointer tuple_key, gpointer tuple_value, gpointer user_data)
|
||||
g_relation_delete_tuple (gpointer tuple_key,
|
||||
gpointer tuple_value,
|
||||
gpointer user_data)
|
||||
{
|
||||
gpointer *tuple = (gpointer*) tuple_value;
|
||||
GRealRelation *rel = (GRealRelation *) user_data;
|
||||
@ -238,16 +242,17 @@ g_relation_delete_tuple (gpointer tuple_key, gpointer tuple_value, gpointer user
|
||||
}
|
||||
|
||||
gint
|
||||
g_relation_delete (GRelation *relation,
|
||||
g_relation_delete (GRelation *relation,
|
||||
gconstpointer key,
|
||||
gint field)
|
||||
gint field)
|
||||
{
|
||||
GRealRelation *rel = (GRealRelation *) relation;
|
||||
GHashTable *table = rel->hashed_tuple_tables[field];
|
||||
GHashTable *key_table;
|
||||
gint count = rel->count;
|
||||
|
||||
g_assert (table);
|
||||
g_return_val_if_fail (relation != NULL, 0);
|
||||
g_return_val_if_fail (table != NULL, 0);
|
||||
|
||||
key_table = g_hash_table_lookup (table, key);
|
||||
|
||||
@ -268,7 +273,9 @@ g_relation_delete (GRelation *relation,
|
||||
}
|
||||
|
||||
static void
|
||||
g_relation_select_tuple (gpointer tuple_key, gpointer tuple_value, gpointer user_data)
|
||||
g_relation_select_tuple (gpointer tuple_key,
|
||||
gpointer tuple_value,
|
||||
gpointer user_data)
|
||||
{
|
||||
gpointer *tuple = (gpointer*) tuple_value;
|
||||
GRealTuples *tuples = (GRealTuples*) user_data;
|
||||
@ -284,9 +291,9 @@ g_relation_select_tuple (gpointer tuple_key, gpointer tuple_value, gpointer user
|
||||
}
|
||||
|
||||
GTuples*
|
||||
g_relation_select (GRelation *relation,
|
||||
g_relation_select (GRelation *relation,
|
||||
gconstpointer key,
|
||||
gint field)
|
||||
gint field)
|
||||
{
|
||||
GRealRelation *rel = (GRealRelation *) relation;
|
||||
GHashTable *table = rel->hashed_tuple_tables[field];
|
||||
@ -294,7 +301,8 @@ g_relation_select (GRelation *relation,
|
||||
GRealTuples *tuples = g_new0 (GRealTuples, 1);
|
||||
gint count;
|
||||
|
||||
g_assert (table);
|
||||
g_return_val_if_fail (relation != NULL, NULL);
|
||||
g_return_val_if_fail (table != NULL, NULL);
|
||||
|
||||
key_table = g_hash_table_lookup (table, key);
|
||||
|
||||
@ -314,15 +322,16 @@ g_relation_select (GRelation *relation,
|
||||
}
|
||||
|
||||
gint
|
||||
g_relation_count (GRelation *relation,
|
||||
g_relation_count (GRelation *relation,
|
||||
gconstpointer key,
|
||||
gint field)
|
||||
gint field)
|
||||
{
|
||||
GRealRelation *rel = (GRealRelation *) relation;
|
||||
GHashTable *table = rel->hashed_tuple_tables[field];
|
||||
GHashTable *key_table;
|
||||
|
||||
g_assert (table);
|
||||
g_return_val_if_fail (relation != NULL, 0);
|
||||
g_return_val_if_fail (table != NULL, 0);
|
||||
|
||||
key_table = g_hash_table_lookup (table, key);
|
||||
|
||||
@ -374,7 +383,8 @@ g_tuples_index (GTuples *tuples0,
|
||||
{
|
||||
GRealTuples *tuples = (GRealTuples*) tuples0;
|
||||
|
||||
g_assert (field < tuples->width);
|
||||
g_return_val_if_fail (tuples0 != NULL, NULL);
|
||||
g_return_val_if_fail (field < tuples->width, NULL);
|
||||
|
||||
return tuples->data[index * tuples->width + field];
|
||||
}
|
||||
|
8
gtimer.c
8
gtimer.c
@ -79,7 +79,7 @@ g_timer_new (void)
|
||||
void
|
||||
g_timer_destroy (GTimer *timer)
|
||||
{
|
||||
g_assert (timer != NULL);
|
||||
g_return_if_fail (timer != NULL);
|
||||
|
||||
g_free (timer);
|
||||
}
|
||||
@ -89,7 +89,7 @@ g_timer_start (GTimer *timer)
|
||||
{
|
||||
GRealTimer *rtimer;
|
||||
|
||||
g_assert (timer != NULL);
|
||||
g_return_if_fail (timer != NULL);
|
||||
|
||||
rtimer = (GRealTimer*) timer;
|
||||
rtimer->active = TRUE;
|
||||
@ -106,7 +106,7 @@ g_timer_stop (GTimer *timer)
|
||||
{
|
||||
GRealTimer *rtimer;
|
||||
|
||||
g_assert (timer != NULL);
|
||||
g_return_if_fail (timer != NULL);
|
||||
|
||||
rtimer = (GRealTimer*) timer;
|
||||
rtimer->active = FALSE;
|
||||
@ -123,7 +123,7 @@ g_timer_reset (GTimer *timer)
|
||||
{
|
||||
GRealTimer *rtimer;
|
||||
|
||||
g_assert (timer != NULL);
|
||||
g_return_if_fail (timer != NULL);
|
||||
|
||||
rtimer = (GRealTimer*) timer;
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user