2006-04-07 Hans Breuer <hans@breuer.org>
* glib/makefile.msc.in : added gbase64.obj and derive the static libs
name from auto* variables
* glib/makefile.msc.in : link user32.lib for MessageBox()
* glib/gthreadpool.c: Make sure
g_thread_pool_stop_unused_threads() actually stops unused threads
and global limits (like max idle time and max unused threads) can
be set without creating a thread pool first. Fixed#335215 (patch
from Chris Wilson).
* tests/threadpool-test.c: Added two new tests, tests setting
global limits before creating a thread pool. The second test
makes sure unused threads are actually stopped when using the
g_thread_pool_stop_unused_threads().
2006-04-05 Matthias Clasen <mclasen@redhat.com>
* glib/gnulib/vasnprintf.c (vasnprintf): Make
long long printing work if snprintf is not
available. (#332841, Michael McDonald)
2006-04-05 Behdad Esfahbod <behdad@gnome.org>
* tests/option-test.c: Check the return value of g_get_prgname for
NULL before passing to strcmp.
* tests/slice-test.c: Report the correct name in Usage summary.
2006-03-31 Tor Lillqvist <tml@novell.com>
* glib/gstdio.c (g_remove): Revert change below. It wasn't a good
idea after all, says the original bug reporter. See bug for
discussion.
2006-03-30 Tor Lillqvist <tml@novell.com>
* glib/gstdio.c (g_remove): [Win32] call rmdir() only if remove()
fails with errno set to ENOENT, to leave errno set to EACCESS if
that is the problem. (#334799, Yevgen Muntyan)
2006-03-27 Dom Lachowicz <cinamod@hotmail.com>
* tests/option-test.c: Copy-and-paste error slipped into test5. Enable
test5, as per Matthias' comments in bug 329548#c11.
2006-03-26 Matthias Clasen <mclasen@redhat.com>
* glib/goption.c (g_option_context_new): Improve the description
of parameter_string in the docs. (#336085, Claudio Saavedra)
* glib/gthreadpool.c: Updated the documentation to explain that
when the maximum threads is > 1 the sort functionality is not 100%
accurate due to the ramdom nature of the scheduler choosing which
threads to execute. Fixes bug #334943.
* tests/threadpool-test.c: Disabled the debugging by default and
fixed the sort test to set the maximum threads to 1 to guarantee
the thread entry function is called in order.
2006-03-23 Emmanuele Bassi <ebassi@cvs.gnome.org>
* configure.in: Check for timegm.
* glib/gtimer.h:
* glib/gtimer.c:
* glib/glib.symbols:
* docs/reference/glib/glib-sections.txt: Added g_time_val_to_iso8601
and g_time_val_from_iso8601, to convert a GTimeVal to and from an
ISO 8601 encoded date.
* tests/testglib.c: Added test cases for g_time_val_to_iso8601()
and g_time_val_from_iso8601() functions.
2006-03-20 Matthias Clasen <mclasen@redhat.com>
* glib/gmem.c (profiler_log): use standard_calloc to allocate
the profile_data. (#335209, Chris Wilson)
* glib/gmain.c (g_main_context_unref): Avoid a deadlock.
(#335207, Chris Wilson)
Minor optimizations (#335216, Chris Wilson):
* glib/gasyncqueue.c (g_async_queue_pop_intern_unlocked): Use
g_queue_peek_tail_link instead of g_queue_peek_tail.
* glib/glist.c:
* glib/gslist.c: Avoid some memset calls.
2006-03-15 Matthias Clasen <mclasen@redhat.com>
* glib/goption.c (g_option_context_parse): Only set the prgname
if it hasn't been set before. (#334611, Chong Kai Xiong)
2006-03-14 Matthias Clasen <mclasen@redhat.com>
* glib/gutils.c (g_parse_debug_string): Don't read past the
end of the string. (#334471, Morten Welinder)
2006-03-13 Anders Carlsson <andersca@luminoth.local>
* configure.in: Revert fix for #322476, it breaks module loading
since libtool on darwin makes shared modules use .so and shared
libraries use .dylib. The fix breaks shared module loading everywhere
in GTK+.
2006-03-02 Marcus Brinkmann <mb@g10code.de>
Implement watches for GIOChannels for write file descriptors on
Win32 (#333098).
* glib/giowin32.c (GIOWin32Channel): Add a new direction field.
(read_thread): Initialize direction.
(write_thread): New function.
(buffer_write): New function.
(g_io_win32_prepare): Handle the G_IO_WIN32_FILE_DESC case for the
write direction.
(g_io_win32_fd_write): Call buffer_write() if there is a writer
thread.
(g_io_win32_fd_close): Set space_avail_event for writer threads.
(g_io_win32_fd_create_watch): Create the writer thread if
condition is G_IO_OUT.
(g_io_channel_win32_make_pollfd): Likewise here.
2006-03-07 Matthias Clasen <mclasen@redhat.com>
* glib/gutf8.c (_g_charset_get_aliases): Match the prototype
in gconvert.c to fix build problems in NetBSD. (#333651,
Julio M. Merino Vidal)
2006-03-06 Anders Carlsson <andersca@imendio.com>
* configure.in:
Skip checking thread flags on Darwin. Fix suggested by Manish Singh.
(#314794, Gregor Riepl)
2006-03-01 Tor Lillqvist <tml@novell.com>
* glib/gutils.c (g_listenv): Separate implementation on Win32: Use
the wide character API on NT-based Windows. Return UTF-8 strings.
* glib/glib.symbols: Don't mark g_listenv as PRIVATE, as that
meant it wasn't present in the import library. PRIVATE is used
only for the backwards-compatibility DLL ABI stability hacks.
* tests/asyncqueue-test.c:
* tests/list-test.c:
* tests/slist-test.c: Updated to test _sort, _sort_with_data,
_insert_sorted and _insert_sorted_with_data API.
2006-02-15 Sebastian Wilhelmi <seppi@seppi.de>
* glib/gthreadpool.c: Fix deadlock when signalling the thread
which freed a thread pool (#331110, Chris Wilson).
Tue Feb 14 17:00:43 2006 Tim Janik <timj@imendio.com>
* glib/gslice.c: only define _XOPEN_SOURCE to 600 to get at
posix_memalign() in case we actually are going to use it, because
we detected a compliant implementation (#328997).
* configure.in (enable_included_printf): don't include malloc.h when
testing for posix_memalign() funcitonality, since this may break the
test on some systems (#328997).
2006-01-31 Behdad Esfahbod <behdad@gnome.org>
* docs/reference/glib/tmpl/relations.sgml (g_relation_insert): Specify
the type of varargs arguments. (bug #317679)
Tue Jan 31 16:45:03 2006 Tim Janik <timj@imendio.com>
* glib/gdataset.c: carry out all dtalist pointer accesses atomically,
some missing cases where pointed out by Sebastian Wilhelmi.
2006-01-29 Sven Herzberg <herzi@gnome-de.org>
* docs/reference/gobject/tmpl/param_value_types.sgml: tell how to
create container classes which are as flexible as a GValue is
Wed Jan 25 19:16:57 2006 Tim Janik <timj@imendio.com>
* fixed buglets reported by Jens Granseuer in #328254.
* configure.in: free the memory allocated in posix_memalign() tests.
* glib/gslice.c: spelling fixes.
Wed Jan 25 16:39:18 2006 Tim Janik <timj@imendio.com>
* glib/gslice.c: honour g_mem_gc_friendly settings when freeing
slices, make sure g_mem_gc_friendly is properly initialized.
* gmem.[hc]: ensure g_mem_gc_friendly is initialized from G_DEBUG upon
the first allocation. applied some branching optimizations.
* docs/macros.txt: reflected --enable-gc-friendly change and
described ENABLE_GC_FRIENDLY_DEFAULT as well as G_DEBUG=gc-friendly.
* configure.in: changed --enable-gc-friendly=yes to define
ENABLE_GC_FRIENDLY_DEFAULT.
* glib/garray.c: changed ENABLE_GC_FRIENDLY macro #ifdef-s to
if (G_UNLIKELY (g_mem_gc_friendly)).
* glib/gtree.c:
* glib/ghash.c: removed ENABLE_GC_FRIENDLY code which is now taken
care of by g_slice_free1().
* tests/slice-test.c: fixed leaks, reported by Kjartan Maraas.
Tue Jan 24 17:49:36 2006 Tim Janik <timj@imendio.com>
* glib/gslice.c: only use posix_memalign() if it's known to work,
revert to memalign() otherwise.
* configure.in: check for broken posix_memalign() implementations
to fix#328254.
2006-01-24 Matthias Clasen <mclasen@redhat.com>
* tests/unicode-encoding.c: Use UTF-16LE as target encoding
on all little-endian systems. (#143380, Marc Moorcroft)
Mon Jan 23 17:30:33 2006 Tim Janik <timj@imendio.com>
* glib/gutils.c (_g_getenv_nomalloc): wiped out all the wonderfull
G_OS_WIN32 code i wrote ;-[) after tml told me windows has getenv()
as well.
Mon Jan 23 16:46:20 2006 Tim Janik <timj@imendio.com>
* glib/gslice.c (slice_config_init): initialize GSlice config from
G_SLICE environemtn variable. we support G_SLICE=always-malloc
currently, which forces all g_slice_*() allocations to use the system
malloc instead.
* glib/gutils.c:
g_parse_debug_string(): added a note about not using g_malloc() here.
_g_getenv_nomalloc(): getenv() variant that doesn't use g_malloc or
g_slice. contains only guesswork in the WIN32 branch.
2006-01-17 Sebastian Wilhelmi <seppi@seppi.de>
* glib/gthreadpool.c: To avoid deadlocks get rid of the settings
G_LOCK. Use the unused_thread_queue lock instead. Change
g_thread_pool_thread_proxy such that threads only wait on
non-exlusive pools for at most a 1/2 second. Do not reorder tasks
due to superfluous tasks. Global tasks wait at most for
max-idle-time milliseconds. Make sure, that no task is woken up
twice for the same event via a wakeup_serial. This fixes#324228.
* tests/threadpool-test.c: Adapt test accordingly. Do not pass
invalid NULL into the thread pools. This as well fixes#327290.
2006-01-16 Matthias Clasen <mclasen@redhat.com>
* glib/gthread.h (g_static_mutex_get_mutex_impl_shortcut):
Rework the strict aliasing fix to not break C++, pointed
out by Murray Cumming.
2006-01-16 Matthias Clasen <mclasen@redhat.com>
* glib/gasyncqueue.c (g_async_queue_push_sorted_unlocked):
Signal waiting threads, problem noticed by Christian Kellner.
2006-01-16 Matthias Clasen <mclasen@redhat.com>
Fix bug 326747, Alberto Ruiz:
* glib/gconvert.c (make_valid_utf8): Change this function to
replace unknown characters by the Unicode replacement character
instead of '?', and don't append "(invalid encoding)".
(g_filename_display_name, g_filename_display_basename): Document
how to determine if the filename was in an invalid encoding.
2006-01-14 Matthias Clasen <mclasen@redhat.com>
* glib/gtree.c: Replace the simple recursive implementation
by a nonrecursive, threaded implementation by Maurizio
Monge. (#169285)
2005-12-20 Sven Herzberg <herzi@gnome-de.org>
* docs/reference/gobject/tmpl/gtype.sgml: explain that
G_TYPE_INSTANCE_GET_CLASS() does behave different during
initialization
2006-01-04 Manish Singh <yosh@gimp.org>
* glib/glib.symbols
* glib/gstdio.h: don't macroized g_access, g_chdir, and g_unlink
either, since they have the same issue as g_rmdir. (Related to
bug #325249)
Wed Jan 4 13:33:25 2006 Tim Janik <timj@gtk.org>
* glib/gslice.c (magazine_cache_pop_magazine): don't reverse chunk
order when creating magazines, so we hand out chunks with ascending
adresses.
* docs/reference/glib/glib-sections.txt:
* glib/glib.symbols:
* glib/gthreadpool.[ch]:
- Added new API g_thread_pool_get_idle_time() and
g_thread_pool_set_idle_time(). (#324228).
* tests/threadpool-test.c:
- Updated test case to do thread pool sorting, thread pool with
no sorting and a thread pool with idle thread timeouts.
2005-12-20 Michael Meeks <michael.meeks@novell.com>
* glib/gmain.c (g_main_context_is_owner): new method
to determine if the current thread is the owner of the
context.
2006-01-02 Matthias Clasen <mclasen@redhat.com>
* glib/glib.symbols:
* glib/gstdio.h:
* glib/gstdio.c (g_rmdir): Don't provide g_rmdir() as a macro
expanding to rmdir, since rmdir is not declared in a portable
system header we can include in gstdio.h. (#325249, Jani Monoses)
2006-01-01 Tor Lillqvist <tml@novell.com>
* glib/gspawn-win32.c (g_spawn_sync_utf8): Set the GIOChannels for
stdout and stderr to unbuffered. Otherwise the giochannel layer
will try to read from them regardless whether the
g_io_channel_win32_poll() call here has indicated
readability or not. (#325310)
2005-12-27 Matthias Clasen <mclasen@redhat.com>
Fix#316221, Michal Benes, Stanislav Brabec;
* configure.in: Fix a strict aliasing problem in
g_static_mutex_get_mutex().
* glib/gthread.h: ...and in
g_static_mutex_get_mutex_impl_shortcut().
2005-12-20 Matthias Clasen <mclasen@redhat.com>
* glib/glib.symbols:
* glib/gthreadpool.h:
* glib/gthreadpool.c (g_thread_pool_set_sort_function): New function
to sort tasks pushed into a threadpool. (#324479, Martyn Russell)
* tests/threadpool-test.c: Test this.
Tue Dec 20 18:14:14 2005 Tim Janik <timj@imendio.com>
* glib/gslice.[hc]: added mem_error() and mem_assert() to test and
handle errors without depending on gmessage.c which might not be
setup when the error occours.
removed G_SLICE_CONFIG_ALWAYS_FREE config option, fixed the code so
always freeing can be achieved by adjusting the working set time to
0 with G_SLICE_CONFIG_WORKING_SET_MSECS.
added G_SLICE_CONFIG_COLOR_INCREMENT to test different color increments
(mainly 0 and 1). reduced the minimum block size to 128 bytes, to
minimize wastage if small amounts of differently sized structrues are
allocated, this does come at a performance cost of roughly 5% though.
fixed up block alignment calculation, so it works for varying
block sizes. only use strerror() not g_strerror() since the latter
depends on working GQuark and GSlice.
mem_error(): implemented in terms of fprintf and vfprintf.
* tests/slice-color.c: new program to test cache colorization effects.
* tests/slice-test.c: trade G_SLICE_CONFIG_ALWAYS_FREE for 0 duration
G_SLICE_CONFIG_WORKING_SET_MSECS.
2005-12-17 Matthias Clasen <mclasen@redhat.com>
* glib/goption.c (parse_short_option): Set an error in all
failure cases. (#324332, Tim-Philipp Müller)
2005-12-17 Sebastian Wilhelmi <seppi@seppi.de>
* glib/gatomic.c: Fix memory barrier position in g_atomic_int_get
and g_atomic_pointer_get. Add g_atomic_int_set and
g_atomic_pointer_set implementations for the !DEFINE_WITH_MUTEXES &&
G_ATOMIC_OP_MEMORY_BARRIER_NEEDED case, as well as defining them
as functions (additionally to the macros in the header) for the
!G_ATOMIC_OP_MEMORY_BARRIER_NEEDED case.
2005-12-16 Matthias Clasen <mclasen@redhat.com>
* glib/gmem.c (g_allocator_new): Don't return a pointer to
a const struct, since apps expect to be able to modify it.
(#324179, J. Ali Harlow)
Tue Dec 13 10:13:32 2005 Tim Janik <timj@imendio.com>
* glib/gatomic.h: added g_atomic_pointer_set() and g_atomic_int_set()
for systems where the initialization of atomic variables requires a
write memory barrier.
2005-12-09 Alexander Larsson <alexl@redhat.com>
* glib/glist.h:
* glib/gslist.h:
Use G_GNUC_WARN_UNUSED_RESULT on list functions that return
the whole list.
* 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 Tor Lillqvist <tml@novell.com>
* 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 <mclasen@redhat.com>
* 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 Matthias Clasen <mclasen@redhat.com>
* 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)
* 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 <timj@imendio.com>
* 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 <mortenw@gnome.org>.
* 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 <mclasen@redhat.com>
* 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 Matthias Clasen <mclasen@redhat.com>
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 <mclasen@redhat.com>
* 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.