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:
Sebastian Wilhelmi 1999-03-17 01:05:49 +00:00 committed by Tim Janik
parent 5d1e3dc14e
commit 5f17e39e2a
18 changed files with 434 additions and 80 deletions

View File

@ -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> 1999-03-16 Timur Bakeyev <mc@bat.ru>
* configure.in: Fix problem with pthread_create in libc, as running * configure.in: Fix problem with pthread_create in libc, as running

View File

@ -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> 1999-03-16 Timur Bakeyev <mc@bat.ru>
* configure.in: Fix problem with pthread_create in libc, as running * configure.in: Fix problem with pthread_create in libc, as running

View File

@ -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> 1999-03-16 Timur Bakeyev <mc@bat.ru>
* configure.in: Fix problem with pthread_create in libc, as running * configure.in: Fix problem with pthread_create in libc, as running

View File

@ -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> 1999-03-16 Timur Bakeyev <mc@bat.ru>
* configure.in: Fix problem with pthread_create in libc, as running * configure.in: Fix problem with pthread_create in libc, as running

View File

@ -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> 1999-03-16 Timur Bakeyev <mc@bat.ru>
* configure.in: Fix problem with pthread_create in libc, as running * configure.in: Fix problem with pthread_create in libc, as running

View File

@ -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> 1999-03-16 Timur Bakeyev <mc@bat.ru>
* configure.in: Fix problem with pthread_create in libc, as running * configure.in: Fix problem with pthread_create in libc, as running

View File

@ -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> 1999-03-16 Timur Bakeyev <mc@bat.ru>
* configure.in: Fix problem with pthread_create in libc, as running * configure.in: Fix problem with pthread_create in libc, as running

View File

@ -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> 1999-03-16 Timur Bakeyev <mc@bat.ru>
* configure.in: Fix problem with pthread_create in libc, as running * configure.in: Fix problem with pthread_create in libc, as running

View File

@ -37,6 +37,8 @@
#undef ENABLE_MEM_CHECK #undef ENABLE_MEM_CHECK
#undef ENABLE_MEM_PROFILE #undef ENABLE_MEM_PROFILE
#undef REALLOC_0_WORKS
#undef G_COMPILED_WITH_DEBUGGING #undef G_COMPILED_WITH_DEBUGGING
#undef G_THREADS_ENABLED #undef G_THREADS_ENABLED
@ -51,7 +53,9 @@
#undef HAVE_LIMITS_H #undef HAVE_LIMITS_H
#undef HAVE_LONG_DOUBLE #undef HAVE_LONG_DOUBLE
#undef HAVE_POLL #undef HAVE_POLL
#undef HAVE_PTHREAD_COND_TIMEDWAIT_POSIX
#undef HAVE_PTHREAD_GETSPECIFIC_POSIX #undef HAVE_PTHREAD_GETSPECIFIC_POSIX
#undef HAVE_PTHREAD_MUTEX_TRYLOCK_POSIX
#undef HAVE_PWD_H #undef HAVE_PWD_H
#undef HAVE_SYS_PARAM_H #undef HAVE_SYS_PARAM_H
#undef HAVE_SYS_POLL_H #undef HAVE_SYS_POLL_H

View File

@ -320,6 +320,22 @@ else
fi fi
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 **********************
dnl *** va_copy checks *** dnl *** va_copy checks ***

11
ghook.c
View File

@ -177,6 +177,7 @@ g_hook_unref (GHookList *hook_list,
GHook *hook) GHook *hook)
{ {
g_return_if_fail (hook_list != NULL); 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 != NULL);
g_return_if_fail (hook->ref_count > 0); g_return_if_fail (hook->ref_count > 0);
@ -197,15 +198,21 @@ g_hook_unref (GHookList *hook_list,
} }
hook->prev = NULL; hook->prev = NULL;
if (!hook_list->is_setup)
{
hook_list->is_setup = TRUE;
g_hook_free (hook_list, hook); g_hook_free (hook_list, hook);
hook_list->is_setup = FALSE;
if (!hook_list->hooks && if (!hook_list->hooks)
!hook_list->is_setup)
{ {
g_mem_chunk_destroy (hook_list->hook_memchunk); g_mem_chunk_destroy (hook_list->hook_memchunk);
hook_list->hook_memchunk = NULL; hook_list->hook_memchunk = NULL;
} }
} }
else
g_hook_free (hook_list, hook);
}
} }
void void

View File

@ -177,6 +177,7 @@ g_hook_unref (GHookList *hook_list,
GHook *hook) GHook *hook)
{ {
g_return_if_fail (hook_list != NULL); 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 != NULL);
g_return_if_fail (hook->ref_count > 0); g_return_if_fail (hook->ref_count > 0);
@ -197,15 +198,21 @@ g_hook_unref (GHookList *hook_list,
} }
hook->prev = NULL; hook->prev = NULL;
if (!hook_list->is_setup)
{
hook_list->is_setup = TRUE;
g_hook_free (hook_list, hook); g_hook_free (hook_list, hook);
hook_list->is_setup = FALSE;
if (!hook_list->hooks && if (!hook_list->hooks)
!hook_list->is_setup)
{ {
g_mem_chunk_destroy (hook_list->hook_memchunk); g_mem_chunk_destroy (hook_list->hook_memchunk);
hook_list->hook_memchunk = NULL; hook_list->hook_memchunk = NULL;
} }
} }
else
g_hook_free (hook_list, hook);
}
} }
void void

View File

@ -62,7 +62,7 @@
#define ENTER_MEM_CHUNK_ROUTINE() \ #define ENTER_MEM_CHUNK_ROUTINE() \
g_static_set (allocating_for_mem_chunk, \ g_static_set (allocating_for_mem_chunk, \
g_static_get (allocating_for_mem_chunk) + 1) 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_set (allocating_for_mem_chunk, \
g_static_get (allocating_for_mem_chunk) - 1) g_static_get (allocating_for_mem_chunk) - 1)
#else #else
@ -309,7 +309,13 @@ g_realloc (gpointer mem,
if (!mem) if (!mem)
{
#ifdef REALLOC_0_WORKS
p = (gpointer) realloc (NULL, size); p = (gpointer) realloc (NULL, size);
#else /* !REALLOC_0_WORKS */
p = (gpointer) malloc (size);
#endif /* !REALLOC_0_WORKS */
}
else else
{ {
#if defined(ENABLE_MEM_PROFILE) || defined(ENABLE_MEM_CHECK) #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++) for (i = 0; i < (MEM_PROFILE_TABLE_SIZE - 1); i++)
if (local_allocations[i] > 0) if (local_allocations[i] > 0)
g_log (g_log_domain_glib, G_LOG_LEVEL_INFO, 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) if (local_allocations[MEM_PROFILE_TABLE_SIZE - 1] > 0)
g_log (g_log_domain_glib, G_LOG_LEVEL_INFO, 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); 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 allocated", 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 freed", 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 in use", local_allocated_mem - local_freed_mem);
#endif /* ENABLE_MEM_PROFILE */ #endif /* ENABLE_MEM_PROFILE */
} }
@ -525,7 +531,7 @@ g_mem_chunk_destroy (GMemChunk *mem_chunk)
GMemArea *mem_areas; GMemArea *mem_areas;
GMemArea *temp_area; GMemArea *temp_area;
g_assert (mem_chunk != NULL); g_return_if_fail (mem_chunk != NULL);
ENTER_MEM_CHUNK_ROUTINE(); ENTER_MEM_CHUNK_ROUTINE();
@ -566,7 +572,7 @@ g_mem_chunk_alloc (GMemChunk *mem_chunk)
ENTER_MEM_CHUNK_ROUTINE(); ENTER_MEM_CHUNK_ROUTINE();
g_assert (mem_chunk != NULL); g_return_val_if_fail (mem_chunk != NULL, NULL);
rmem_chunk = (GRealMemChunk*) mem_chunk; rmem_chunk = (GRealMemChunk*) mem_chunk;
@ -714,8 +720,8 @@ g_mem_chunk_free (GMemChunk *mem_chunk,
GMemArea *temp_area; GMemArea *temp_area;
GFreeAtom *free_atom; GFreeAtom *free_atom;
g_assert (mem_chunk != NULL); g_return_if_fail (mem_chunk != NULL);
g_assert (mem != NULL); g_return_if_fail (mem != NULL);
ENTER_MEM_CHUNK_ROUTINE(); ENTER_MEM_CHUNK_ROUTINE();
@ -757,7 +763,7 @@ g_mem_chunk_clean (GMemChunk *mem_chunk)
GFreeAtom *temp_free_atom; GFreeAtom *temp_free_atom;
gpointer mem; gpointer mem;
g_assert (mem_chunk != NULL); g_return_if_fail (mem_chunk != NULL);
rmem_chunk = (GRealMemChunk*) mem_chunk; rmem_chunk = (GRealMemChunk*) mem_chunk;
@ -821,7 +827,7 @@ g_mem_chunk_reset (GMemChunk *mem_chunk)
GMemArea *mem_areas; GMemArea *mem_areas;
GMemArea *temp_area; GMemArea *temp_area;
g_assert (mem_chunk != NULL); g_return_if_fail (mem_chunk != NULL);
rmem_chunk = (GRealMemChunk*) mem_chunk; rmem_chunk = (GRealMemChunk*) mem_chunk;
@ -851,7 +857,7 @@ g_mem_chunk_print (GMemChunk *mem_chunk)
GMemArea *mem_areas; GMemArea *mem_areas;
gulong mem; gulong mem;
g_assert (mem_chunk != NULL); g_return_if_fail (mem_chunk != NULL);
rmem_chunk = (GRealMemChunk*) mem_chunk; rmem_chunk = (GRealMemChunk*) mem_chunk;
mem_areas = rmem_chunk->mem_areas; 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, 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); 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_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); g_mutex_lock (mem_chunks_lock);
mem_chunk = mem_chunks; mem_chunk = mem_chunks;

View File

@ -154,7 +154,9 @@ g_relation_index (GRelation *relation,
{ {
GRealRelation *rel = (GRealRelation *) relation; GRealRelation *rel = (GRealRelation *) relation;
g_assert (rel->count == 0 && rel->hashed_tuple_tables[field] == NULL); g_return_if_fail (relation != 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); 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 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; gpointer *tuple = (gpointer*) tuple_value;
GRealRelation *rel = (GRealRelation *) user_data; GRealRelation *rel = (GRealRelation *) user_data;
@ -247,7 +251,8 @@ g_relation_delete (GRelation *relation,
GHashTable *key_table; GHashTable *key_table;
gint count = rel->count; 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); key_table = g_hash_table_lookup (table, key);
@ -268,7 +273,9 @@ g_relation_delete (GRelation *relation,
} }
static void 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; gpointer *tuple = (gpointer*) tuple_value;
GRealTuples *tuples = (GRealTuples*) user_data; GRealTuples *tuples = (GRealTuples*) user_data;
@ -294,7 +301,8 @@ g_relation_select (GRelation *relation,
GRealTuples *tuples = g_new0 (GRealTuples, 1); GRealTuples *tuples = g_new0 (GRealTuples, 1);
gint count; 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); key_table = g_hash_table_lookup (table, key);
@ -322,7 +330,8 @@ g_relation_count (GRelation *relation,
GHashTable *table = rel->hashed_tuple_tables[field]; GHashTable *table = rel->hashed_tuple_tables[field];
GHashTable *key_table; 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); key_table = g_hash_table_lookup (table, key);
@ -374,7 +383,8 @@ g_tuples_index (GTuples *tuples0,
{ {
GRealTuples *tuples = (GRealTuples*) 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]; return tuples->data[index * tuples->width + field];
} }

View File

@ -79,7 +79,7 @@ g_timer_new (void)
void void
g_timer_destroy (GTimer *timer) g_timer_destroy (GTimer *timer)
{ {
g_assert (timer != NULL); g_return_if_fail (timer != NULL);
g_free (timer); g_free (timer);
} }
@ -89,7 +89,7 @@ g_timer_start (GTimer *timer)
{ {
GRealTimer *rtimer; GRealTimer *rtimer;
g_assert (timer != NULL); g_return_if_fail (timer != NULL);
rtimer = (GRealTimer*) timer; rtimer = (GRealTimer*) timer;
rtimer->active = TRUE; rtimer->active = TRUE;
@ -106,7 +106,7 @@ g_timer_stop (GTimer *timer)
{ {
GRealTimer *rtimer; GRealTimer *rtimer;
g_assert (timer != NULL); g_return_if_fail (timer != NULL);
rtimer = (GRealTimer*) timer; rtimer = (GRealTimer*) timer;
rtimer->active = FALSE; rtimer->active = FALSE;
@ -123,7 +123,7 @@ g_timer_reset (GTimer *timer)
{ {
GRealTimer *rtimer; GRealTimer *rtimer;
g_assert (timer != NULL); g_return_if_fail (timer != NULL);
rtimer = (GRealTimer*) timer; rtimer = (GRealTimer*) timer;

36
gmem.c
View File

@ -62,7 +62,7 @@
#define ENTER_MEM_CHUNK_ROUTINE() \ #define ENTER_MEM_CHUNK_ROUTINE() \
g_static_set (allocating_for_mem_chunk, \ g_static_set (allocating_for_mem_chunk, \
g_static_get (allocating_for_mem_chunk) + 1) 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_set (allocating_for_mem_chunk, \
g_static_get (allocating_for_mem_chunk) - 1) g_static_get (allocating_for_mem_chunk) - 1)
#else #else
@ -309,7 +309,13 @@ g_realloc (gpointer mem,
if (!mem) if (!mem)
{
#ifdef REALLOC_0_WORKS
p = (gpointer) realloc (NULL, size); p = (gpointer) realloc (NULL, size);
#else /* !REALLOC_0_WORKS */
p = (gpointer) malloc (size);
#endif /* !REALLOC_0_WORKS */
}
else else
{ {
#if defined(ENABLE_MEM_PROFILE) || defined(ENABLE_MEM_CHECK) #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++) for (i = 0; i < (MEM_PROFILE_TABLE_SIZE - 1); i++)
if (local_allocations[i] > 0) if (local_allocations[i] > 0)
g_log (g_log_domain_glib, G_LOG_LEVEL_INFO, 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) if (local_allocations[MEM_PROFILE_TABLE_SIZE - 1] > 0)
g_log (g_log_domain_glib, G_LOG_LEVEL_INFO, 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); 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 allocated", 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 freed", 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 in use", local_allocated_mem - local_freed_mem);
#endif /* ENABLE_MEM_PROFILE */ #endif /* ENABLE_MEM_PROFILE */
} }
@ -525,7 +531,7 @@ g_mem_chunk_destroy (GMemChunk *mem_chunk)
GMemArea *mem_areas; GMemArea *mem_areas;
GMemArea *temp_area; GMemArea *temp_area;
g_assert (mem_chunk != NULL); g_return_if_fail (mem_chunk != NULL);
ENTER_MEM_CHUNK_ROUTINE(); ENTER_MEM_CHUNK_ROUTINE();
@ -566,7 +572,7 @@ g_mem_chunk_alloc (GMemChunk *mem_chunk)
ENTER_MEM_CHUNK_ROUTINE(); ENTER_MEM_CHUNK_ROUTINE();
g_assert (mem_chunk != NULL); g_return_val_if_fail (mem_chunk != NULL, NULL);
rmem_chunk = (GRealMemChunk*) mem_chunk; rmem_chunk = (GRealMemChunk*) mem_chunk;
@ -714,8 +720,8 @@ g_mem_chunk_free (GMemChunk *mem_chunk,
GMemArea *temp_area; GMemArea *temp_area;
GFreeAtom *free_atom; GFreeAtom *free_atom;
g_assert (mem_chunk != NULL); g_return_if_fail (mem_chunk != NULL);
g_assert (mem != NULL); g_return_if_fail (mem != NULL);
ENTER_MEM_CHUNK_ROUTINE(); ENTER_MEM_CHUNK_ROUTINE();
@ -757,7 +763,7 @@ g_mem_chunk_clean (GMemChunk *mem_chunk)
GFreeAtom *temp_free_atom; GFreeAtom *temp_free_atom;
gpointer mem; gpointer mem;
g_assert (mem_chunk != NULL); g_return_if_fail (mem_chunk != NULL);
rmem_chunk = (GRealMemChunk*) mem_chunk; rmem_chunk = (GRealMemChunk*) mem_chunk;
@ -821,7 +827,7 @@ g_mem_chunk_reset (GMemChunk *mem_chunk)
GMemArea *mem_areas; GMemArea *mem_areas;
GMemArea *temp_area; GMemArea *temp_area;
g_assert (mem_chunk != NULL); g_return_if_fail (mem_chunk != NULL);
rmem_chunk = (GRealMemChunk*) mem_chunk; rmem_chunk = (GRealMemChunk*) mem_chunk;
@ -851,7 +857,7 @@ g_mem_chunk_print (GMemChunk *mem_chunk)
GMemArea *mem_areas; GMemArea *mem_areas;
gulong mem; gulong mem;
g_assert (mem_chunk != NULL); g_return_if_fail (mem_chunk != NULL);
rmem_chunk = (GRealMemChunk*) mem_chunk; rmem_chunk = (GRealMemChunk*) mem_chunk;
mem_areas = rmem_chunk->mem_areas; 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, 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); 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_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); g_mutex_lock (mem_chunks_lock);
mem_chunk = mem_chunks; mem_chunk = mem_chunks;

24
grel.c
View File

@ -154,7 +154,9 @@ g_relation_index (GRelation *relation,
{ {
GRealRelation *rel = (GRealRelation *) relation; GRealRelation *rel = (GRealRelation *) relation;
g_assert (rel->count == 0 && rel->hashed_tuple_tables[field] == NULL); g_return_if_fail (relation != 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); 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 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; gpointer *tuple = (gpointer*) tuple_value;
GRealRelation *rel = (GRealRelation *) user_data; GRealRelation *rel = (GRealRelation *) user_data;
@ -247,7 +251,8 @@ g_relation_delete (GRelation *relation,
GHashTable *key_table; GHashTable *key_table;
gint count = rel->count; 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); key_table = g_hash_table_lookup (table, key);
@ -268,7 +273,9 @@ g_relation_delete (GRelation *relation,
} }
static void 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; gpointer *tuple = (gpointer*) tuple_value;
GRealTuples *tuples = (GRealTuples*) user_data; GRealTuples *tuples = (GRealTuples*) user_data;
@ -294,7 +301,8 @@ g_relation_select (GRelation *relation,
GRealTuples *tuples = g_new0 (GRealTuples, 1); GRealTuples *tuples = g_new0 (GRealTuples, 1);
gint count; 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); key_table = g_hash_table_lookup (table, key);
@ -322,7 +330,8 @@ g_relation_count (GRelation *relation,
GHashTable *table = rel->hashed_tuple_tables[field]; GHashTable *table = rel->hashed_tuple_tables[field];
GHashTable *key_table; 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); key_table = g_hash_table_lookup (table, key);
@ -374,7 +383,8 @@ g_tuples_index (GTuples *tuples0,
{ {
GRealTuples *tuples = (GRealTuples*) 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]; return tuples->data[index * tuples->width + field];
} }

View File

@ -79,7 +79,7 @@ g_timer_new (void)
void void
g_timer_destroy (GTimer *timer) g_timer_destroy (GTimer *timer)
{ {
g_assert (timer != NULL); g_return_if_fail (timer != NULL);
g_free (timer); g_free (timer);
} }
@ -89,7 +89,7 @@ g_timer_start (GTimer *timer)
{ {
GRealTimer *rtimer; GRealTimer *rtimer;
g_assert (timer != NULL); g_return_if_fail (timer != NULL);
rtimer = (GRealTimer*) timer; rtimer = (GRealTimer*) timer;
rtimer->active = TRUE; rtimer->active = TRUE;
@ -106,7 +106,7 @@ g_timer_stop (GTimer *timer)
{ {
GRealTimer *rtimer; GRealTimer *rtimer;
g_assert (timer != NULL); g_return_if_fail (timer != NULL);
rtimer = (GRealTimer*) timer; rtimer = (GRealTimer*) timer;
rtimer->active = FALSE; rtimer->active = FALSE;
@ -123,7 +123,7 @@ g_timer_reset (GTimer *timer)
{ {
GRealTimer *rtimer; GRealTimer *rtimer;
g_assert (timer != NULL); g_return_if_fail (timer != NULL);
rtimer = (GRealTimer*) timer; rtimer = (GRealTimer*) timer;