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>
* 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>
* 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>
* 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>
* 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>
* 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>
* 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>
* 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>
* configure.in: Fix problem with pthread_create in libc, as running

View File

@ -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

View File

@ -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
View File

@ -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);
}
}

View File

@ -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);
}
}

View File

@ -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;

View File

@ -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];
}

View File

@ -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
View File

@ -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
View File

@ -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];
}

View File

@ -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;