* gobject/genums.c: (g_flags_get_first_value): Special-case flag
value of 0. Instead of returning the first random GFlagsValue
we come across, return the GFlagsValue for 0 if it exists or
NULL if it does not exist. Never return the GFlagsValue for 0
if the requested flags value is nonzero.
2005-08-10 Matthias Clasen <mclasen@redhat.com>
* glib/gfileutils.c (g_build_path_va, g_build_pathname_va):
Take a va_list*, not a va_list, to avoid compiler warnings
about uninitialized variables.
2005-08-09 Matthias Clasen <mclasen@redhat.com>
* tests/gobject/Makefile.am (test_programs): Add it here.
* tests/gobject/gvalue-test.c: Beginning of a test suite
for GValue.
2005-08-09 Matthias Clasen <mclasen@redhat.com>
* gvaluetransform.c: Access enum and flags
values as v_long/v_ulong, not v_int/v_uint,
to make value transformation of such types
work on bigendian 64bit machines. (#312485,
Michael Lorenz)
2005-08-08 Matthias Clasen <mclasen@redhat.com>
* tests/convert-test.c: Enable the endianness test.
* glib/gconvert.c: Make the caching of iconv descriptors
optional.
* configure.in: Add an --enable-iconv-cache option, and
default to disabling iconv caching on new enough glibc.
Somebody with access to Solaris systems will need to test
if opening/closing of iconv descriptors is enough of
a performance problem to warrant the caching on that
platform. Note that the caching is causing correctness
problems in some corner cases, thus turning it off
is desirable unless it has severe performance implications.
2005-08-08 Matthias Clasen <mclasen@redhat.com>
* tests/Makefile.am: Add convert-test here.
* tests/convert-test.c: Add the beginning of a testsuite
for g_convert() and friends.
2005-08-04 Matthias Clasen <mclasen@redhat.com>
* glib/glib.symbols:
* glib/gatomic.[hc]: Always export g_atomic_int_get and
g_atomic_pointer_get as functions, even if we have macros,
to avoid changing the ABI depending on configuration.
* glib/gatomic.c: Fix the s390 implementations of
g_atomic_pointer_compare_and_exchange.
2005-08-04 Tor Lillqvist <tml@novell.com>
* glib/gstdio.h: Move the G_BEGIN_DECLS/G_END_DECLS pair outside
the #if/#else/#endif block. Otherwise we had G_BEGIN_DECLS without
matching G_END_DECLS on Unix, and G_END_DECLS without matching
G_BEGIN_DECLS on Win32.
2005-08-02 Matthias Clasen <mclasen@redhat.com>
* gclosure.c (union ClosureInt): Mark the vint member as
volatile, which seems to be necessary to make atomic operations
work on s390.
2005-08-02 Matthias Clasen <mclasen@redhat.com>
* glib/gconvert.c (g_convert_with_iconv): Don't go in an
infinite loop if the input text ends in an incomplete multibyte
character. (#312402, Sebastian Bacher)
2005-08-02 Tor Lillqvist <tml@novell.com>
* tests/refcount/objects.c
* tests/refcount/properties.c
* tests/refcount/signals.c: Use g_usleep() instead of sleep() for
portability.
Mon Aug 1 23:33:47 2005 Tim Janik <timj@imendio.com>
* tests/refcount/closures.c: test high contention on closure
reference counts to trigger and catch non-atomic updates.
* tests/refcount/objects.c:
* tests/refcount/objects2.c:
* tests/refcount/properties.c:
* tests/refcount/properties2.c:
* tests/refcount/signals.c:
fixed up test and threading fundamentals. variables accessed from all
threads need to be volatile. context switches are enforced by using
g_thread_yield(), not g_usleep(1) which may result in busy waits on
some platforms. for testcode, always consider all warnings and
critical messages fatal. issue the currently running program on
stdout. improved progress indicators.
* tests/refcount/properties.c:
* tests/refcount/objects.c:
don't overdo the number of testing threads to keep the testing machine
usable, 2 threads can produce as much contention as 20 if executing the
same code.
* tests/refcount/signals.c: only start 1 thread per object. GObject
doesn't provide mutually exclusive object access, but only mutually
exclusive reference count modification.
* tests/Makefile.am: added closures test.
Mon Aug 1 23:00:42 2005 Tim Janik <timj@imendio.com>
* gclosure.c: turned all modifications to the first 32 integer bits in a
closure into atomic accesses. wrapped write accesses into special macros
to keep the atomic modification logic in a single place. comment cleanups.
* gclosure.h: made all atomicly accessed closure fields volatile.
* gobject.h: made ref_count field volatile.