commit 599c669b23a56d605fc69d96a93a198d27b08b28
Author: Ryan Lortie <
[email protected]>
AuthorDate: Mon Mar 17 17:18:47 2014 -0400
Commit: Ryan Lortie <
[email protected]>
CommitDate: Mon Mar 17 17:18:47 2014 -0400
GLib 2.39.92
NEWS | 28 ++++++++++++++++++++++++++++
configure.ac | 2 +-
2 files changed, 29 insertions(+), 1 deletion(-)
commit b0630a37b8310907e5389bb17eb62a7412747345
Author: Claude Paroz <
[email protected]>
AuthorDate: Sat Mar 15 19:45:27 2014 +0000
Commit: GNOME Translation Robot <
[email protected]>
CommitDate: Sat Mar 15 19:45:27 2014 +0000
Updated French translation
po/fr.po | 2052
++++++++++++++++++++++++++++++++++----------------------------
1 file changed, 1123 insertions(+), 929 deletions(-)
commit 3f119b2fd408fb2e0f4eea07ed9618d2faa749ee
Author: Ryan Lortie <
[email protected]>
AuthorDate: Tue Mar 11 21:41:36 2014 -0400
Commit: Ryan Lortie <
[email protected]>
CommitDate: Fri Mar 14 09:46:39 2014 -0400
GSettingsBackend: fix a nasty race condition
In the event that a GSettings object is being destroyed just as
a change
signal is being delivered, the destroying thread will race with the
dconf worker thread for acquiring the lock on the GSettingsBackend.
If the signalling thread gets there first then the destroying thread
will block on the lock. The signalling thread adds a reference to the
GSettings object that is being destroyed and releases the lock. The
idea is that this should prevent the GSettings object from being
destroyed and thus maintain its entry in the list. Unfortunately, the
weak reference notify function is already running and as soon as we
release the lock, the list entry is removed.
The signalling thread crashes.
This bug is indicative of a serious problem encountered in many
situations where GObject instances are touched from multiple threads.
Ideally, we will move to a place where g_object_ref() is not called at
all on the GSettings object from the dconf worker thread and
instead, a
dispatch will be done without holding a reference (similar to how
GAppInfoMonitor presently works). This would also prevent the
unfortunate case of someone dropping what they assume to be the last
reference on a GSettings object, only to have an already-pending
signal
delivered once they return to the mainloop, crashing their program.
Making this change for GSettings (with multiple instances per thread,
the possibility of multiple backends and each instance being
interested
in different events) is going to be extremely non-trivial, so it's
not a
change that makes sense at this point in the cycle.
For now, we can do a relatively small and isolated tweak so that we
never access the list except under a lock. We still perform the bad
pattern of acquiring a ref in a foreign thread which means that
we still
risk delivering a signal to a GSettings object that the user has
assumed
is dead (unless they explicitly disconnect their signal handler).
This
is a problem that we already had, however.
https://bugzilla.gnome.org/show_bug.cgi?id=710367
gio/gsettingsbackend.c | 44 ++++++++++++++++++++------------------------
1 file changed, 20 insertions(+), 24 deletions(-)
commit 698970f1f70f1821df5ac83ffa6d797fa4579881
Author: Ryan Lortie <
[email protected]>
AuthorDate: Wed Feb 26 17:09:59 2014 -0500
Commit: Ryan Lortie <
[email protected]>
CommitDate: Fri Mar 14 09:46:39 2014 -0400
gsettingsbackend: a minor simplification
Change the order of the arguments on the (internal) keys_changed
callback in
GSettingsListenerVTable.
This means that all functions in the table now fit the following
signature:
void (* f) (GObject *target,
GSettingsBackend *backend,
const gchar *name_or_path,
gpointer origin_tag,
const gchar * const *names);
allowing the possibility of arguments ignored at the end.
This allows us to simplify our dispatch-to-thread code in
GSettingsBackend,
making it a bit less generic.
So far, this should be a straight refactor.
https://bugzilla.gnome.org/show_bug.cgi?id=710367
gio/gdelayedsettingsbackend.c | 4 +--
gio/gsettings.c | 4 +--
gio/gsettingsbackend.c | 74
++++++++++++++----------------------------
gio/gsettingsbackendinternal.h | 4 +--
4 files changed, 31 insertions(+), 55 deletions(-)
commit 62206576c34d4ea10d43324144db44970c99dd97
Author: Chun-wei Fan <
[email protected]>
AuthorDate: Wed Mar 12 17:26:45 2014 +0800
Commit: Chun-wei Fan <
[email protected]>
CommitDate: Wed Mar 12 17:26:45 2014 +0800
Update config.h.win32.in
Make the entries of config.h.win32.in match those that are being
checked
in config.h.in.
config.h.win32.in | 36 ++++++++++++++++--------------------
1 file changed, 16 insertions(+), 20 deletions(-)
commit bb43d78aff72d406e64a47d2592919c58152aba3
Author: Duarte Loreto <
[email protected]>
AuthorDate: Wed Mar 12 02:10:55 2014 +0000
Commit: GNOME Translation Robot <
[email protected]>
CommitDate: Wed Mar 12 02:10:55 2014 +0000
Updated Portuguese translation
po/pt.po | 2040
++++++++++++++++++++++++++++++++++----------------------------
1 file changed, 1121 insertions(+), 919 deletions(-)
commit ffe4e94e3afa16c4e28d6e299f68d8a7ca408b8c
Author: Ryan Lortie <
[email protected]>
AuthorDate: Tue Mar 11 12:19:19 2014 -0400
Commit: Ryan Lortie <
[email protected]>
CommitDate: Tue Mar 11 21:28:58 2014 -0400
GUnixVolume: implement _finish functions
The _finish functions for GUnixVolume _mount and _eject functions were
never implemented, having been simply stubbed out as 'return TRUE;'.
Implement them.
https://bugzilla.gnome.org/show_bug.cgi?id=724916
gio/gunixvolume.c | 8 ++++++--
1 file changed, 6 insertions(+), 2 deletions(-)
commit 62fa9c578f4ee3f2ca5127961a4609596a4bdaee
Author: Ryan Lortie <
[email protected]>
AuthorDate: Sun Mar 2 21:24:14 2014 -0500
Commit: Ryan Lortie <
[email protected]>
CommitDate: Tue Mar 11 21:28:58 2014 -0400
GUnixVolume: port to GSubprocess
Do the same as we just did for GUnixMount, for GUnixVolume too.
https://bugzilla.gnome.org/show_bug.cgi?id=724916
gio/gunixvolume.c | 174
++++++++++++------------------------------------------
1 file changed, 37 insertions(+), 137 deletions(-)
commit 64ec757d058dae045e275577da8f14f463cc7c44
Author: Ryan Lortie <
[email protected]>
AuthorDate: Sun Mar 2 17:39:11 2014 -0500
Commit: Ryan Lortie <
[email protected]>
CommitDate: Tue Mar 11 21:28:58 2014 -0400
GUnixMount: port unmount to GSubprocess
The existing code is buggy and now that we have GSubprocess, we
should just use
it instead, allowing for some substantial reduction in complexity.
https://bugzilla.gnome.org/show_bug.cgi?id=724916
gio/gunixmount.c | 158
+++++++++++--------------------------------------------
1 file changed, 32 insertions(+), 126 deletions(-)
commit cee80dc8c4a1707f8a2e5540540d220f9ca89de2
Author: Yuri Myasoedov <
[email protected]>
AuthorDate: Tue Mar 11 21:21:57 2014 +0400
Commit: Yuri Myasoedov <
[email protected]>
CommitDate: Tue Mar 11 21:21:57 2014 +0400
Updated Russian translation
po/ru.po | 2957
++++++++++++++++++++++++++++++++++----------------------------
1 file changed, 1624 insertions(+), 1333 deletions(-)
commit 8c78fb827b51aa6e48fa20bac3f1ede4c699dd43
Author: Lars Uebernickel <
[email protected]>
AuthorDate: Mon Mar 10 19:46:23 2014 +0100
Commit: Lars Uebernickel <
[email protected]>
CommitDate: Tue Mar 11 11:47:57 2014 +0100
glocalfileinfo: don't special-case directory icons
As of e6af432, g_content_type_get_symbolic_icon() returns non-symbolic
fallbacks. Thus, we can't append another symbolic icon to the
fallbacks.
The special case was a bit of a hack anyway. It was only applied to
themed icons and there was no generic fallback for mime types that are
not folders.
https://bugzilla.gnome.org/show_bug.cgi?id=726046
gio/glocalfileinfo.c | 10 ++--------
1 file changed, 2 insertions(+), 8 deletions(-)
commit 25f36d8e5efb1312bc684a28158ecfba2dd2ace0
Author: David King <
[email protected]>
AuthorDate: Mon Mar 10 19:16:28 2014 +0000
Commit: David King <
[email protected]>
CommitDate: Mon Mar 10 19:16:28 2014 +0000
Add g_application_command_line_get_options_dict() to docs
docs/reference/gio/gio-sections.txt | 1 +
1 file changed, 1 insertion(+)
commit a9ac71b50361f035163b7611e06d5b470467d125
Author: Chao-Hsiung Liao <
[email protected]>
AuthorDate: Sun Mar 9 11:39:30 2014 +0800
Commit: Chao-Hsiung Liao <
[email protected]>
CommitDate: Sun Mar 9 11:39:30 2014 +0800
Updated Traditional Chinese translation(Hong Kong and Taiwan)
po/zh_HK.po | 1759
+++++++++++++++++++++++++++++------------------------------
po/zh_TW.po | 1759
+++++++++++++++++++++++++++++------------------------------
2 files changed, 1736 insertions(+), 1782 deletions(-)
commit 012011538f4513569f92e322c4377efa2cb64378
Author: Sebastian Dröge <
[email protected]>
AuthorDate: Sun Feb 9 23:08:21 2014 +0100
Commit: Ryan Lortie <
[email protected]>
CommitDate: Sat Mar 8 09:01:52 2014 -0500
gtype – Mark _get_instance_private() function as G_GNUC_UNUSED
clang likes to complain about it being unused.
https://bugzilla.gnome.org/show_bug.cgi?id=723899
gobject/gtype.h | 1 +
1 file changed, 1 insertion(+)
commit 1a736f5f51d19904ab82d684674d003b51364c32
Author: Rūdolfs Mazurs <
[email protected]>
AuthorDate: Sat Mar 8 15:58:53 2014 +0200
Commit: Rūdolfs Mazurs <
[email protected]>
CommitDate: Sat Mar 8 15:58:53 2014 +0200
Updated Latvian translation
po/lv.po | 2101
++++++++++++++++++++++++++++++++++----------------------------
1 file changed, 1168 insertions(+), 933 deletions(-)
commit 0fa3a8dd602fba7149825ec3c030d9ac9e70dd42
Author: Wylmer Wang <
[email protected]>
AuthorDate: Sat Mar 8 12:26:07 2014 +0000
Commit: GNOME Translation Robot <
[email protected]>
CommitDate: Sat Mar 8 12:26:07 2014 +0000
Updated Chinese (China) translation
po/zh_CN.po | 1709
++++++++++++++++++++++++++++++-----------------------------
1 file changed, 862 insertions(+), 847 deletions(-)
commit 66e2ffe97869e13562b13c51d5dbd3ea1a89bd51
Author: Ryan Lortie <
[email protected]>
AuthorDate: Fri Mar 7 07:41:50 2014 -0500
Commit: Ryan Lortie <
[email protected]>
CommitDate: Fri Mar 7 07:47:14 2014 -0500
gio tests: add codegen to BUILT_SOURCES
We need to have these in BUILT_SOURCES so that 'make' knows to
generate them
before attempting to compile other .c files in the same directory
(since some
of these files include the header).
Should fix up remaining issues about partial versions of this
file being
included under parallel builds.
https://bugzilla.gnome.org/show_bug.cgi?id=725891
gio/tests/Makefile.am | 1 +
1 file changed, 1 insertion(+)
commit 7a6dfd75d66d274020805b6c770ba683900a3402
Author: Matthias Clasen <
[email protected]>
AuthorDate: Fri Mar 7 06:10:36 2014 -0500
Commit: Matthias Clasen <
[email protected]>
CommitDate: Fri Mar 7 06:10:36 2014 -0500
GObject: Remove more leftover markup from headers
gobject/gbinding.h | 2 +-
gobject/gobject.h | 10 +++++-----
gobject/gparam.h | 8 ++++----
gobject/gtypemodule.h | 2 +-
gobject/gtypeplugin.h | 5 ++---
5 files changed, 13 insertions(+), 14 deletions(-)
commit fdd7ed94fe7d7427b962c5c0faa66f68b18a3fc1
Author: Changwoo Ryu <
[email protected]>
AuthorDate: Fri Mar 7 02:02:27 2014 +0900
Commit: Changwoo Ryu <
[email protected]>
CommitDate: Fri Mar 7 02:02:27 2014 +0900
Updated Korean translation
po/ko.po | 2035
++++++++++++++++++++++++++++++++++----------------------------
1 file changed, 1109 insertions(+), 926 deletions(-)
commit d41dad89681837498202743cd8ee63e62a024f4a
Author: Kjartan Maraas <
[email protected]>
AuthorDate: Wed Mar 5 19:24:18 2014 +0100
Commit: Kjartan Maraas <
[email protected]>
CommitDate: Wed Mar 5 19:24:18 2014 +0100
Updated Norwegian bokmål translation
po/nb.po | 61
++++++++++++++++++++++++++++++-------------------------------
1 file changed, 30 insertions(+), 31 deletions(-)
commit b22f02a94bc4449f1f7741a73e8d4c899b69d627
Author: Giovanni Campagna <
[email protected]>
AuthorDate: Tue Mar 4 15:30:12 2014 +0100
Commit: Giovanni Campagna <
[email protected]>
CommitDate: Wed Mar 5 17:14:14 2014 +0100
Unskip GVariantDict
There is no reason to (skip) GVariantDict, it's a boxed type
and perfectly usable from gobject-introspection.
https://bugzilla.gnome.org/show_bug.cgi?id=725656
glib/gvariant.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
commit c9cda16a4f607bf9b6498051d2b83aad99e391e4
Author: Ryan Lortie <
[email protected]>
AuthorDate: Wed Mar 5 09:04:00 2014 -0500
Commit: Ryan Lortie <
[email protected]>
CommitDate: Wed Mar 5 09:05:42 2014 -0500
cond test: remove alarm() usage
This means that the test can't build on Windows (and we do want
it there).
This will be properly resolved with bug 725266, but let's not
block the
build before then.
https://bugzilla.gnome.org/show_bug.cgi?id=724859
glib/tests/cond.c | 5 -----
1 file changed, 5 deletions(-)
commit fd8c1a306725ed7f877c0ec6d5c27f5436c5941f
Author: Matthias Clasen <
[email protected]>
AuthorDate: Tue Mar 4 20:20:52 2014 -0500
Commit: Matthias Clasen <
[email protected]>
CommitDate: Tue Mar 4 20:20:52 2014 -0500
Work around gtk-doc problems
Returns shall never be at the beginning of a line.
gio/gsubprocess.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
commit 2b11af4f1f336f8e7fda26045fe76375176c8a17
Author: Ryan Lortie <
[email protected]>
AuthorDate: Tue Mar 4 09:08:24 2014 -0500
Commit: Ryan Lortie <
[email protected]>
CommitDate: Tue Mar 4 09:08:24 2014 -0500
gsubprocess: test environment a bit more
Add a test for GSubprocess to test setting, unsetting and inheritance
of
environment variables. Use communicate() to give it a bit more of a
workout as well.
https://bugzilla.gnome.org/show_bug.cgi?id=725651
gio/tests/gsubprocess-testprog.c | 18 ++++++++++++++++++
gio/tests/gsubprocess.c | 35 +++++++++++++++++++++++++++++++++++
2 files changed, 53 insertions(+)
commit e767204e0e8108df66893e23209b22b041be893d
Author: Ryan Lortie <
[email protected]>
AuthorDate: Tue Mar 4 08:55:00 2014 -0500
Commit: Ryan Lortie <
[email protected]>
CommitDate: Tue Mar 4 08:55:00 2014 -0500
GSubprocessLauncher: don't get empty environment
Use g_get_environ() to get the environment variables with their values
instead of g_listenv() which only lists off the keys.
https://bugzilla.gnome.org/show_bug.cgi?id=725651
gio/gsubprocesslauncher.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
commit 9da88a12c52f122e1e2b8faaed6c95ec1bcef104
Author: Ryan Lortie <
[email protected]>
AuthorDate: Mon Mar 3 21:25:16 2014 -0500
Commit: Ryan Lortie <
[email protected]>
CommitDate: Mon Mar 3 21:26:24 2014 -0500
gsubprocess: test empty splices
Make sure we handle the case that our splice returns no data properly.
https://bugzilla.gnome.org/show_bug.cgi?id=724916
gio/tests/gsubprocess.c | 29 +++++++++++++++++++++++++++++
1 file changed, 29 insertions(+)
commit 9f71965becd919a736cb57bbd3501b22e6341fa7
Author: Ryan Lortie <
[email protected]>
AuthorDate: Sun Mar 2 21:01:12 2014 -0500
Commit: Ryan Lortie <
[email protected]>
CommitDate: Mon Mar 3 21:26:24 2014 -0500
gsubprocess: fix communicate() with empty buffers
On the splice for stdout or stderr completing, GSubprocess calls
_slice_finish() to collect the result.
We assume that a zero return value here means failure, but in
fact this
function returns a gssize -- the number of bytes transferred, or
-1 for
an error.
This causes GSubprocess to mistakenly think that it has an error
when it
actually just has an empty buffer (as would be the case when
collecting
stderr from a successful command).
Check for -1 instead of FALSE to detect the error.
https://bugzilla.gnome.org/show_bug.cgi?id=724916
gio/gsubprocess.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)