2676 Commits

Author SHA1 Message Date
Matthias Clasen
402a1081ae Add a note about casting the results of g_new() and g_new0().
2006-01-17  Matthias Clasen  <mclasen@redhat.com>

	* glib/tmpl/memory.sgml: Add a note about casting the results
	of g_new() and g_new0().
2006-01-18 03:51:39 +00:00
Sebastian Wilhelmi
f4484f51bf To avoid deadlocks get rid of the settings G_LOCK. Use the
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-17 20:06:27 +00:00
Matthias Clasen
488cee4977 Rework the strict aliasing fix to not break C++, pointed out by Murray
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 23:03:10 +00:00
Matthias Clasen
5fb7be3961 Signal waiting threads, problem noticed by Christian Kellner.
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 22:14:17 +00:00
Matthias Clasen
11a3e72c3a Fix bug 326747, Alberto Ruiz:
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-16 14:54:45 +00:00
Matthias Clasen
fb3e4c63ef Replace the simple recursive implementation by a nonrecursive, threaded
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)
2006-01-14 05:24:10 +00:00
Matthias Clasen
a3a469192c Break some long lines.
2006-01-08  Matthias Clasen  <mclasen@redhat.com>

	* glib/gtree.c: Break some long lines.

	* tests/tree-test.c: Add more tests.
2006-01-09 04:11:12 +00:00
Matthias Clasen
0f3dfbfc86 Include config.h first 2006-01-08 23:21:01 +00:00
Matthias Clasen
4a71102e70 Fix a build problem on OS X. 2006-01-06 05:50:40 +00:00
Hans Breuer
920519fd61 added gslice.obj
2006-01-05  Hans Breuer  <hans@breuer.org>

	* glib/makefile.msc.in : added gslice.obj
2006-01-05 23:37:02 +00:00
Matthias Clasen
90bd00b055 Clarify the documentation of source ids a bit. (#325874, Dan Williams)
2006-01-05  Matthias Clasen  <mclasen@redhat.com>

	* glib/gmain.c: Clarify the documentation of source ids
	a bit.  (#325874, Dan Williams)
2006-01-05 21:07:55 +00:00
Matthias Clasen
fbf0e8bc7d Avoid use of varargs macro. (#325864, Kazuki IWAMOTO)
2006-01-05  Matthias Clasen  <mclasen@redhat.com>

	* glib/gthreadpool.c: Avoid use of varargs macro.  (#325864,
	Kazuki IWAMOTO)
2006-01-05 14:24:35 +00:00
Manish Singh
7be75a123b glib/glib.symbols don't macroized g_access, g_chdir, and g_unlink either,
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)
2006-01-05 06:21:49 +00:00
Tim Janik
f2613bf9ed don't reverse chunk order when creating magazines, so we hand out chunks
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.
2006-01-04 13:03:22 +00:00
Martyn James Russell
941faa1ca9 - Added new API g_thread_pool_get_idle_time() and
* 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.
2006-01-03 15:09:52 +00:00
Matthias Clasen
be5d72cba0 Add new functions 2006-01-03 14:52:34 +00:00
Matthias Clasen
796aa7e06e Small fixes 2006-01-03 12:01:05 +00:00
Michael Meeks
d2555b65ee new method to determine if the current thread is the owner of the context.
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-03 10:24:07 +00:00
Matthias Clasen
a5a39466a1 Don't provide g_rmdir() as a macro expanding to rmdir, since rmdir is not
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-03 02:53:05 +00:00
Tor Lillqvist
07e1d54fb7 Set the GIOChannels for stdout and stderr to unbuffered. Otherwise the
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)
2006-01-01 11:15:56 +00:00
Matthias Clasen
fd73fead6f Fix a copy-and-paste error in the docs. (#325273, Declan Naughton)
2005-12-29  Matthias Clasen  <mclasen@redhat.com>

	* glib/gutils.c (glib_check_version): Fix a copy-and-paste error
	in the docs.  (#325273, Declan Naughton)
2005-12-30 02:08:02 +00:00
Matthias Clasen
1e4efb6554 Fix #316221, Michal Benes, Stanislav Brabec;
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-27 19:50:02 +00:00
Matthias Clasen
97ffe020cd Add a cast to silence compiler warnings. (#321978, Andrew Paprocki)
2005-12-27  Matthias Clasen  <mclasen@redhat.com>

        * glib/gdatasetprivate.h: Add a cast to silence compiler
        warnings.  (#321978, Andrew Paprocki)
2005-12-27 19:21:36 +00:00
Matthias Clasen
d947ad7167 Partial fix for bug #32937, Bogdan Nicula.
2005-12-27  Matthias Clasen  <mclasen@redhat.com>

        Partial fix for bug #32937, Bogdan Nicula.

        * configure.in: Check for malloc.h
        * glib/gslice.c: Don't include malloc.h unconditionally.
2005-12-27 19:15:12 +00:00
Matthias Clasen
8ade96bdce On Win32, include process.h (#325015, Kazuki Iwamoto)
2005-12-26  Matthias Clasen  <mclasen@redhat.com>

	* glib/gslice.c: On Win32, include process.h  (#325015, Kazuki
	Iwamoto)
2005-12-26 23:18:09 +00:00
Matthias Clasen
700a71f010 New function to sort tasks pushed into a threadpool. (#324479, Martyn
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.
2005-12-21 04:45:56 +00:00
Tim Janik
3f9d65375e added mem_error() and mem_assert() to test and handle errors without
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-20 17:35:02 +00:00
Matthias Clasen
df21b345c5 Set an error in all failure cases. (#324332, Tim-Philipp Müller)
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-18 02:46:27 +00:00
Sebastian Wilhelmi
78568970db Fix memory barrier position in g_atomic_int_get and g_atomic_pointer_get.
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-17 12:20:50 +00:00
Matthias Clasen
63732bdf5e Don't return a pointer to a const struct, since apps expect to be able to
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)
2005-12-16 21:13:18 +00:00
Tim Janik
5feb34b939 fixed conditional symbols definitions 2005-12-15 10:01:02 +00:00
Matthias Clasen
28dd7200d6 Document new atomic operations.
2005-12-14  Matthias Clasen  <mclasen@redhat.com>

	* glib/glib-sections.txt:
	* glib/tmpl/atomic_operations.sgml: Document new atomic
	operations.
2005-12-15 04:37:32 +00:00
Tim Janik
7c24467a1c added g_atomic_pointer_set() and g_atomic_int_set() for systems where the
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-13 09:15:52 +00:00
Matthias Clasen
eff8046fcc 2.9.1 2005-12-09 18:05:25 +00:00
Tim Janik
c2584396e5 fix type inconsistency pointed out by gmorten 2005-12-09 16:34:26 +00:00
Alexander Larsson
dd1878cd75 Use G_GNUC_WARN_UNUSED_RESULT on list functions that return the whole
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.
2005-12-09 13:58:57 +00:00
Tim Janik
0237607cc5 removed commit leftover 2005-12-07 15:48:37 +00:00
Martyn James Russell
c6ad7b7ac8 - Call g_queue_insert_sorted() instead of duplicating the code. - Call
* 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 12:09:44 +00:00
Martyn James Russell
a77f5ff0b6 - Added g_list_insert_sorted_with_data () and
* 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 11:35:27 +00:00
Matthias Clasen
d3388eb4e8 Exempt GTK+ from the mem chunk deprecation, since we need GTK+ 2.8 to
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-06 14:16:27 +00:00
Matthias Clasen
c9387d9069 Documentation updates. (#323291, Morten Welinder)
2005-12-05  Matthias Clasen  <mclasen@redhat.com>

	* glib/gutf8.c: Documentation updates.  (#323291, Morten Welinder)
2005-12-05 19:09:00 +00:00
Matthias Clasen
7d5800d718 Deprecate mem chunks 2005-12-05 15:54:44 +00:00
Matthias Clasen
0b5560da8b Add versioned deprecation information 2005-12-05 15:38:54 +00:00
Martyn James Russell
a127920458 - Added support for sorting async queues by with _push_sorted(),
* 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
2005-12-05 15:08:45 +00:00
Tim Janik
6ed79b115c implement chain walking for arbitrary ->next pointer offsets in
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 15:01:27 +00:00
Matthias Clasen
559e1057a0 Add some docs.
2005-12-05  Matthias Clasen  <mclasen@redhat.com>

	* glib/gasyncqueue.c: Add some docs.
2005-12-05 13:50:39 +00:00
Matthias Clasen
5c32d5236f Fix compiler warnings.
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-05 13:37:55 +00:00
Behdad Esfahbod
9200814d86 Remove comma at the end of enum.
2005-12-04  Behdad Esfahbod  <behdad@gnome.org>

        * glib/gslice.h: Remove comma at the end of enum.
2005-12-05 00:45:55 +00:00
Matthias Clasen
8529c47126 Handle multiple user names with the same UID better. (#319535, Laszlo
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 07:00:50 +00:00
Matthias Clasen
00f952f8e8 Add a macro to make gcc warn if a function result is ignored. (#145466,
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.
2005-12-04 06:41:58 +00:00