2005-12-09 Matthias Clasen * === Released 2.9.1 === 2005-12-09 Alexander Larsson * 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 * NEWS: Updates 2005-12-07 Martyn Russell * 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 * 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 * 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 * 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 * tests/run-collate-test.sh: set LC_COLLATE, not LANG, to be sure to override any user settings. 2005-12-05 Matthias Clasen * configure.in: Revert an accidential commit 2005-12-05 Matthias Clasen * 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 * 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 * 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 . * 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 * 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 * glib/gslice.h: Remove comma at the end of enum. 2005-12-04 Matthias Clasen 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 * 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 * 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 * 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 * configure.in: Define G_GUINT64_CONSTANT in analogy to G_GINT64_CONSTANT. (#322568, Andrew Paprocki) 2005-12-02 Matthias Clasen * glib/gslice.c: Win32 portability fixes and C99ism removal, pointed out by Kazuki Iwamoto. (#323052) 2005-12-02 Matthias Clasen * glib/gatomic.c (g_atomic_int_add): Add a missing volatile for the IA64 implementation. Fri Dec 2 16:18:09 2005 Tim Janik * glib/gslice.c: some naming and type size fixups. Fri Dec 2 13:08:58 2005 Tim Janik * 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 * 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 * 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 * 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 * 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 * 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 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 * 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 * 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 * 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 * glib/gdataset.c: streamlined initialization code somewhat, removed GData node cache. 2005-11-22 Matthias Clasen * 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 * 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 * glib/guniprop.c (g_unichar_get_mirror_char): Remove unused variables. (#321984, Andrew Paprocki) 2005-11-18 Matthias Clasen * configure.in: Bump version