2005-12-09  Matthias Clasen  <[email protected]>

       * === Released 2.9.1 ===

2005-12-09  Alexander Larsson  <[email protected]>

       * glib/glist.h:
       * glib/gslist.h:
       Use G_GNUC_WARN_UNUSED_RESULT on list functions that return
       the whole list.

2005-12-08  Matthias Clasen  <[email protected]>

       * NEWS: Updates

2005-12-07  Martyn Russell  <[email protected]>

       * glib/gasyncqueue.c:
       - Call g_queue_insert_sorted() instead of duplicating the code.
       - Call g_queue_sort() instead of duplicating the code.
       - Invert sort function results to make sure the same sort function
       gives the same results across glist, gslist, gqueue and
       gasyncqueue.

       * tests/asyncqueue-test.c:
       - Updated the sort function to reflect the example in the
       documentation for gasyncqueue.c.

2005-12-07  Martyn Russell  <[email protected]>

       * docs/reference/glib/glib-sections.txt:
       * docs/reference/glib/tmpl/linked_lists_double.sgml:
       * docs/reference/glib/tmpl/linked_lists_single.sgml:
       * glib/glist.[ch]:
       * glib/gslist.[ch]:
       - Added g_list_insert_sorted_with_data () and
       g_slist_insert_sorted_with_data ().
       - Removed the extra check in g_list_sort() and g_slist_sort() for
       GCompareDataFunc vs. GCompareFunc.

2005-12-07  Tor Lillqvist  <[email protected]>

       * glib-gettextize.in: Look up prefix at run-time on Win32,
       assuming the standard directory structure with glib-gettextize in
       $prefix/bin.

2005-12-06  Matthias Clasen  <[email protected]>

       * glib/gmem.h: Exempt GTK+ from the mem chunk deprecation, since
       we need GTK+ 2.8 to compile against GLib 2.10.

2005-12-05  Manish Singh  <[email protected]>

       * tests/run-collate-test.sh: set LC_COLLATE, not LANG, to be sure
       to override any user settings.

2005-12-05  Matthias Clasen  <[email protected]>

       * configure.in: Revert an accidential commit

2005-12-05  Matthias Clasen  <[email protected]>

       * glib/gutf8.c: Documentation updates.  (#323291, Morten Welinder)

       * tests/Makefile.am (TESTS_ENVIRONMENT):
       * tests/gobject/Makefile.am (TESTS_ENVIRONMENT): Set
       MALLOC_CHECK_ and MALLOC_PERTURB_

       * tests/run-collate-tests.sh: Run the collation tests explicitly
       in en_US locale. (#320463)

       * glib/gmem.h: Really deprecate GMemChunk.

       * glib/gdate.c:
       * glib/gutils.c:
       * glib/gtree.c:
       * glib/gstring.c:
       * glib/giochannel.c:
       * glib/gstrfuncs.c: Add versioned deprecation docs.

2005-12-05  Martyn Russell  <[email protected]>

       * docs/reference/glib/glib-sections.txt:
       * glib/gasyncqueue.[ch]:
       - Added support for sorting async queues by with _push_sorted(),
       _push_sorted_unlocked(), _sort() and _sort_unlocked() (#323047).

       * tests/Makefile.am:
       * tests/asyncqueue-test.c:
       - Added test case for gasyncqueue.c

Mon Dec  5 15:53:20 2005  Tim Janik  <[email protected]>

       * glib/gslice.c: implement chain walking for arbitrary ->next pointer
       offsets in g_slice_free_chain_with_offset() based on a patch by behdad
       in bug 323178. moved time consuming logic from g_slice_free() out of
       the inner loop, so g_slice_free_chain_with_offset() provides a real
       performance benefit over g_slice_free1() now.

       * glib/gslice.h: renamed g_slice_free_chain() to
       g_slice_free_chain_with_offset(). implemented g_slice_free_chain() as
       a type-safe macro as suggested in bug 323178.
       simplified the macro implementation of g_slice_free() and implemented
       it in a type safe manner for all compliers as suggested by Morten
       Welinder <[email protected]>.

       * glib/gmain.c:
       * glib/glist.c:
       * glib/gslist.c:
       * glib/glib.symbols: s/g_slice_free_chain/g_slice_free_chain_with_offset/

2005-12-05  Matthias Clasen  <[email protected]>

       * glib/gasyncqueue.c: Add some docs.

       * tests/libmoduletestplugin_a.c: Fix compiler warnings.

       * glib/gatomic.c: In the ia64 implementation, use
       __sync builtin without _si or _di suffix.  (#321229,
       Stanislav Brabec, patch by Andreas Schwab)

2005-12-04  Behdad Esfahbod  <[email protected]>

       * glib/gslice.h: Remove comma at the end of enum.

2005-12-04  Matthias Clasen  <[email protected]>

       Handle multiple user names with the same UID better.
       (#319535, Laszlo Peter)

       * glib/gutils.c (g_get_any_init_do): When determining user
       data, first look up $LOGNAME. If the UID doesn't match
       getuid(), fall back to the current behaviour of looking
       up the user data based on getuid().

2005-12-04  Matthias Clasen  <[email protected]>

       * glib/gmacros.h (G_GNUC_WARN_UNUSED_RESULT): Add a macro
       to make gcc warn if a function result is ignored.  (#145466,
       Arjan van de Ven, Alex Larsson)

       * glib/gmem.h: Add the new attribute to g_realloc and
       g_try_realloc.

2005-12-03  Matthias Clasen  <[email protected]>

       * glib/glib.symbols:
       * glib/gcache.h: Deprecate g_cache_value_foreach. (#322956,
       Nicolas Caniart)

       * glib/gmappedfile.c: Make mapping of empty files
       work.  (#321530)

       * glib/gfileutils.c: Don't fork a new process just to
       fix the permissions of the created temp file.  (#321318,
       Alexis S. L. Carvalho)

2005-12-02  Matthias Clasen  <[email protected]>

       * README.in: Add a note about Solaris threads.

       * glib/gspawn.c:
       * configure.in: Remove support for Solaris threads.
       (#136971, Sebastian Wilhelmi, patch by Andrew Paprocki)

2005-12-02  Matthias Clasen  <[email protected]>

       * configure.in: Define G_GUINT64_CONSTANT in analogy to
       G_GINT64_CONSTANT.  (#322568, Andrew Paprocki)

2005-12-02  Matthias Clasen  <[email protected]>

       * glib/gslice.c: Win32 portability fixes and C99ism removal,
       pointed out by Kazuki Iwamoto.  (#323052)

2005-12-02  Matthias Clasen  <[email protected]>

       * glib/gatomic.c (g_atomic_int_add): Add a missing volatile for
       the IA64 implementation.

Fri Dec  2 16:18:09 2005  Tim Janik  <[email protected]>

       * glib/gslice.c: some naming and type size fixups.

Fri Dec  2 13:08:58 2005  Tim Janik  <[email protected]>

       * glib/gslice.h (g_slice_free): reworked GCC-specific type-safe macro
       variant into something less verbose, but digestible for gcc-3.4.

Fri Dec  2 10:55:07 2005  Tim Janik  <[email protected]>

       * tests/slice-test.c: extended to perform the benchmarking on the old
       memchunk code if 'O' is selected.

       * tests/memchunks.c: new file which contains the old GLib mem chunks
       implementation with prefix old_mem_chunk_.

       * tests/Makefile.am: added memchunks.c

Fri Dec  2 00:16:59 2005  Tim Janik  <[email protected]>

       * glib/gslice.c: improved gettimeofday() timer resolution by maintaining
       acceptable load distribution of the syscall.
       (allocator_get_magazine_threshold): reduce minimum/single-thread magazine
       sizes to approximately page_size/2.5 to avoid excessive startup allocations.

2005-12-01  Matthias Clasen  <[email protected]>

       * tests/gobject/ifacecheck.c (test_iface_base_init): Don't
       double-free base interface members.

       * tests/Makefile.am: Remove duplicate variable.

Thu Dec  1 17:32:46 2005  Tim Janik  <[email protected]>

       * glib/gslice.[hc]: new slice allocator implementation.

       * tests/slice-test.c: added random slice allocation test.

       * glib/gthread.[hc]: removed newly added private thread mem API.

       * glib/gthreadinit.h:
       * glib/gmessages.c:
       * glib/gthread.c:
       * glib/gmem.c: divided glib threading initialisation into three phases,
       initialisation where private keys and messaging are not available (only
       needed by gmem.c), initialisation without messaging but private keys
       available (gslice.c, gmessage.c), and full fledged initialisers that
       server the rest of glib. initialisation functions got renamed to reflect
       the limitations of their corresponding phases.

       * glib/gmem.c: removed memchunk code, defer allocations to
       g_slice_* instead.

       * glib/gmem.[hc]: removed g_slice_* skeletons.

       * glib/glib.symbols: added g_slice_* symbols.

       * configure.in: check for availability of posix_memalign(3), memalign(3)
       and valloc(3).

       * glib/Makefile.am: added gslice.[hc].

2005-12-01  Tor Lillqvist  <[email protected]>

       * glib/gstdio.c (g_stat): In the Win32 implementation, strip
       trailing slash(es) for non-root folders. stat() fails if non-root
       folders are specified with trailing slashes. It's too much hassle
       to demand that callers strip such slashes themselves, especially
       as it is easy to get it wrong and strip the slash of a root
       folder.
       (g_rename): On NT-based Windows, use MoveFileEx() with
       MOVEFILE_REPLACE_EXISTING to better match Unix behaviour.

2005-11-28  Matthias Clasen  <[email protected]>

       Fix G_STMT_START / G_STMT_END on Solaris.  (#321972,
       Andrew Paprocki)

       * configure.in: Check whether do { } while (0) works.

       * glib/gmacros.h: Use do { } while (0) for G_STMT_START /
       G_STMT_END if it works.

2005-11-28  Matthias Clasen  <[email protected]>

       * glib/gthread.c (g_static_rw_lock_wait, g_static_rw_lock_signal):
       * glib/gnode.c (g_node_depth_traverse_level):
       * glib/gmem.c (g_allocator_new):
       * glib/ghash.c (g_hash_table_unref, g_hash_table_destroy)
       (g_hash_table_foreach_remove_or_steal): Silence compiler
       warnings.

2005-11-27  Matthias Clasen  <[email protected]>

       * glib/gunicollate.c (g_utf8_collate_key_for_filename):
       Don't read beyond len.  (#322520, Christian Persch)

Wed Nov 23 17:34:01 2005  Tim Janik  <[email protected]>

       * glib/gdataset.c: access datalist flags via atomic pointer access
       functions, instead of acquiring the dataset lock. this is faster and
       also matches the atomic pointer readouts in gdatalistprivate.h and
       direct pointer modifications required by gobject.c.

Wed Nov 23 13:35:31 2005  Tim Janik  <[email protected]>

       * glib/gdataset.c: streamlined initialization code somewhat,
       removed GData node cache.

2005-11-22  Matthias Clasen  <[email protected]>

       * glib/ghash.c (g_hash_table_ref):
       (g_hash_table_unref): Mark these as new API.

       Avoid double locking in g_intern_string (#322133,
       Benedikt Meurer)

       * glib/gdataset.c (g_quark_from_string_internal): New
       internal function which factors out common parts of
       g_quark_from[_static]_string.
       (g_quark_from_string, g_quark_from_static_string):
       Use g_quark_from_string_internal.
       (g_intern_string, g_intern_static_string): Use
       g_quark_from_string_internal, and only take the
       lock once.
       (g_quark_new): Don't store the strings shifted by -1
       in the g_quarks array.
       (g_quark_to_string): Adapt to the previous change.

Tue Nov 22 14:04:26 2005  Tim Janik  <[email protected]>

       * glib/ghash.h:
       * glib/ghash.c:
       g_hash_table_new_full(): create hash tables with a ref count of 1.
       g_hash_table_ref(): atomically ref_count+=1
       g_hash_table_unref(): atomically ref_count-=1, destroys hash table
       when refcount reaches 0.
       g_hash_table_destroy(): just destroy keys and values, unref by 1.
       g_hash_table_insert():
       g_hash_table_replace(): assert ref_count>0.

       * glib/gatomic.h:
       * glib/gatomic.c: added 'volatile' qualifier to all atomic pointer and
       integer pointers.

2005-11-20  Behdad Esfahbod  <[email protected]>

       * glib/guniprop.c (g_unichar_get_mirror_char): Remove unused
       variables. (#321984, Andrew Paprocki)

2005-11-18  Matthias Clasen  <[email protected]>

       * configure.in: Bump version