Wed Dec 16 03:16:58 1998 Tim Janik <timj@gtk.org>
* configure.in: version bump to 1.1.8, binary age 0, interface age 0.
* glib.h: changed g_lock() to G_LOCK(), g_unlock() to G_UNLOCK() and
g_trylock() to G_TRYLOCK(), since these are macros that expand to
nothing with --disable-threads.
changed G_LOCK_DEFINE() to G_LOCK_DECLARE() and introduced
G_LOCK_DECLARE_STATIC() to achive the results of static G_LOCK_DECLARE().
changed semantics of g_thread_supported to g_thread_supported() so it
can be used as a function like g_module_supported(). the actuall
definition is still a macro that expands into a variable for
performance reasons though.
various indentation and coding style cleanups.
* configure.in: added --enable-threads that defaults to yes.
* gmutex.c: changed tests g_thread_supported to g_thread_supported (),
changed variable settings of g_thread_supported
to g_threads_got_initialized.
garray.c:
gcache.c:
gdataset.c:
gdate.c:
ghash.c:
glist.c:
gmain.c:
gnode.c:
gslist.c:
gstring.c:
gtree.c:
gutils.c:
changed s/g_lock/G_LOCK/, s/g_unlock/G_UNLOCK/,
s/static G_LOCK_DEFINE/G_LOCK_DECLARE_STATIC/.
branch. See the ChangeLog for details of the changes.
In brief overview:
- The set of threading functions can be set
- A default implementation is provided in -lgthread
- All static data structures are locked using these
functions if g_thread_init() is called.
Tue Nov 24 09:40:00 1998 Tim Janik <timj@gtk.org>
* glib.h: removed the GListAllocator type and its g_*_allocator_*()
function variants (which weren't working anyways) in favour of a
generic GAllocator type. new functions:
g_allocator_new, g_allocator_free, g_slist_push_allocator,
g_slist_pop_allocator, g_list_push_allocator, g_list_pop_allocator,
g_node_push_allocator and g_node_pop_allocator.
* gstring.c: removed bogus slist allocator code.
* gtree.c: maintain own list of free tree nodes and don't waste
GSLists for that, removed bogus slist allocator code.
* glist.c: use GAllocators for node allocation.
* gslist.c: use GAllocators for node allocation.
* gnode.c: use GAllocators for node allocation.
* gdataset.c: cleanups wrt automatic initialization.
Thu Oct 8 06:47:27 1998 Tim Janik <timj@gtk.org>
* glib.h:
* gdataset.c: removed functions g_dataset_id_set_destroy and
g_datalist_id_set_destroy and macros g_dataset_set_destroy and
g_datalist_set_destroy.
added new functions g_dataset_id_remove_no_notify and
g_datalist_id_remove_no_notify plus associated macros
g_dataset_remove_no_notify and g_datalist_remove_no_notify, which
will remove a certain data portion without invokation of its destroy
notifier, this should only be used in very controled circumstances.
Fri Sep 18 18:46:14 1998 Tim Janik <timj@gtk.org>
* glib.h:
* gdataset.c: make the datalists a safe type (not using a generic
gpointer) by expecting a GData* argument in the g_datalist functions.
provide g_dataset_foreach() and g_datalist_foreach() functions that
allow a GDataForeachFunc function to walk the data lists.
(g_dataset_destroy_internal): made this function truely reentrant (i.e.
can be called from within destroy notifiers as well).
the *_foreach functions are _not_ reentrant (unless all the other
dataset and datalist functions).
Thu Sep 17 06:36:25 1998 Tim Janik <timj@gtk.org>
* glib.h:
* gdataset.c: implemented g_datalist_* along the lines of g_dataset,
but operates on an opaque gpointer *datalist; pointer, e.g. for the
implementation of GtkObject named data.
we cache a certain portion of the already freed data entries now, to
gain a slight performance improve with data reallocation.
Thu Sep 17 06:34:22 1998 Tim Janik <timj@gtk.org>
* gmodule.h:
* gmodule.c: implemented g_module_make_resident() which can be
used to make modules resident.
fixed a buglet about the optional "g_module_de_init" function in
modules, which could get invoked twice on very obscure occasions.
Fri Jun 19 03:11:02 1998 Tim Janik <timj@gtk.org>
* gdataset.c: removed g_dataset_try_key, g_dataset_force_id and
g_dataset_retrive_key in favour of GQuarks.
a GQuark is an numeric id wich is associated with a certain string.
(g_quark_try_string): try to get the quark associated with this string,
if the lookup failed return 0.
(g_quark_from_string): get the associated quark for a string, if there
isn't currently a GQuark associated with this string, then allocate a
new quark and return that.
(g_quark_from_static_string): like the above function, but the string
isn't strdup()ed to save memory.
(g_quark_to_string): get the string that is associated with a certain
GQuark.
* gdataset.c (g_dataset_id_set_data_full): invoke the destroy function
_after_ the new data has been setup.
Thu Jun 11 04:15:31 1998 Tim Janik <timj@gtk.org>
* glib.h:
* gdataset.c: new function g_dataset_retrive_key. adjusted prealloc
sizes, to take up less space on initial allocation.