platform/upstream/glib.git
11 years agoinotify: don't assume mainloop is running
Ryan Lortie [Thu, 25 Jul 2013 14:28:42 +0000 (10:28 -0400)]
inotify: don't assume mainloop is running

GFileMonitor takes great care to sample the thread-default main context
at the time that it is created in order that events can be dispatched to
the correct thread when they come in.

The inotify GFileMonitor implementation uses a global file descriptor
shared between all watches.  It has to poll this file descriptor from
somewhere so it arbitrarily picks the default main context.

The problem with that is that the user might not be running it.

Let's use the GLib worker thread for this instead.  It's guaranteed to
be running if you need it, and this is exactly the sort of problem it
was meant to solve.

https://bugzilla.gnome.org/show_bug.cgi?id=704873

11 years agoFix build with statvfs
Matthias Clasen [Sun, 28 Jul 2013 21:04:56 +0000 (17:04 -0400)]
Fix build with statvfs

As pointed out in bug 704587, the maze of ifdefs was missing the
variable declaration for statfs_result in one case.

https://bugzilla.gnome.org/show_bug.cgi?id=704587

11 years agoFix a typo
Rico Tzschichholz [Sat, 27 Jul 2013 07:02:58 +0000 (09:02 +0200)]
Fix a typo

Introduced by 3b01cbe8a8a9ee2d1169f072624069877b91097c

11 years agoAdd macros and symbols for private data on dynamic types
Emmanuele Bassi [Fri, 26 Jul 2013 15:45:48 +0000 (16:45 +0100)]
Add macros and symbols for private data on dynamic types

We need a TypeName_private_offset variable defined by the macros used to
register dynamic types. We also need to call the adjust_private_offset()
function inside class_init(). G_ADD_PRIVATE_DYNAMIC only sets the size
of the private data structure, and relies on the behaviour of the
g_type_class_adjuset_private_offset() function to register the private
data structure at class init time if passed a value greater than zero.

This allows using G_PRIVATE_OFFSET with dynamic types.

11 years agoconfigure: Use AC_USE_SYSTEM_EXTENSIONS
Colin Walters [Fri, 26 Jul 2013 11:39:51 +0000 (12:39 +0100)]
configure: Use AC_USE_SYSTEM_EXTENSIONS

...instead of detecting glibc and using _GNU_SOURCE manually.  This
should fix the build when using glibc-emulating libraries; we can
defer portability work to autoconf.

https://bugzilla.gnome.org/show_bug.cgi?id=684123

11 years agoDocument restrictions on private names
Matthias Clasen [Fri, 26 Jul 2013 18:40:10 +0000 (14:40 -0400)]
Document restrictions on private names

With the new machinery, private structs must be named
TypeNamePrivate if TypeName is the name of the instance
struct.

11 years agoupdated Gujarati translations
Sweta Kothari [Fri, 26 Jul 2013 09:20:22 +0000 (14:50 +0530)]
updated Gujarati translations

11 years agoAssamese translation updated
Nilamdyuti Goswami [Thu, 25 Jul 2013 07:48:58 +0000 (13:18 +0530)]
Assamese translation updated

11 years agomainloop: redo child source tests to not use timeouts
Dan Winship [Wed, 24 Jul 2013 14:02:38 +0000 (10:02 -0400)]
mainloop: redo child source tests to not use timeouts

The timeout-based tests could fail on slow or heavily-loaded machines.
Change them to use a counter-based "timeout" source rather than a
time-based one, so they no longer depend on wall time.

https://bugzilla.gnome.org/show_bug.cgi?id=700460

11 years agognetworkaddress: tweak to make Solaris happy
Dan Winship [Wed, 24 Jul 2013 14:45:36 +0000 (10:45 -0400)]
gnetworkaddress: tweak to make Solaris happy

https://bugzilla.gnome.org/show_bug.cgi?id=704704

11 years agoTamil Translation Updated
Shantha kumar [Wed, 24 Jul 2013 09:27:30 +0000 (14:57 +0530)]
Tamil Translation Updated

11 years agotests/unix: Don't error immediately on timeout
Colin Walters [Mon, 22 Jul 2013 18:31:35 +0000 (19:31 +0100)]
tests/unix: Don't error immediately on timeout

On a heavily loaded system, it's possible that both our normal
condition *and* the timeout occurred.  In that case we can just ignore
the timeout.

While I did add a "sig_timeout" boolean, we don't need to add any
assertions around whether or not it was reached - the assertions
covering the non-timeout case are sufficient.  The sig_timeout boolean
is mainly for later debugging.

https://bugzilla.gnome.org/show_bug.cgi?id=700460

11 years agogmain: Reset signal handlers to default when source is destroyed
Colin Walters [Mon, 22 Jul 2013 18:06:31 +0000 (19:06 +0100)]
gmain: Reset signal handlers to default when source is destroyed

If someone creates a unix signal source for e.g. SIGINT, and then
removes it, reset the handler to SIG_DFL.

Not doing this was the source of race conditions in the
glib/tests/unix test, but this will also just make us a "good citizen"
by cleaning up.

For example, if a project temporarily creates a handler for SIGTERM,
and then later removes it, they almost certainly want SIGTERM to
revert to the default of terminating the process, rather than doing
nothing.

https://bugzilla.gnome.org/show_bug.cgi?id=704699

11 years agoGRegex: add g_regex_get_max_lookbehind()
Sébastien Wilmet [Mon, 15 Jul 2013 11:52:14 +0000 (13:52 +0200)]
GRegex: add g_regex_get_max_lookbehind()

It is useful for multi-segment regex matching.

A unit test is included.

https://bugzilla.gnome.org/show_bug.cgi?id=689794

11 years agotests/closure: Send SIGUSR1 only to our pid
Colin Walters [Mon, 22 Jul 2013 14:11:13 +0000 (15:11 +0100)]
tests/closure: Send SIGUSR1 only to our pid

Otherwise in e.g. the gnome-ostree integrationtest system, we
end up sending SIGUSR1 to the *entire session*, which triggers
various badness in untested debugging paths from gnome-session.

11 years agotests/closure: Use correct prototype for signal callback
Colin Walters [Mon, 22 Jul 2013 11:51:00 +0000 (12:51 +0100)]
tests/closure: Use correct prototype for signal callback

This test worked when compiled without optimization, but fails with
-O2.  Presumably we just happened to find the GMainLoop off the stack
somewhere.

https://bugzilla.gnome.org/show_bug.cgi?id=704267

11 years agoUpdated Spanish translation
Daniel Mustieles [Mon, 22 Jul 2013 11:48:58 +0000 (13:48 +0200)]
Updated Spanish translation

11 years agog_thread_create_full() can dereference NULL pointer
Milan Crha [Mon, 22 Jul 2013 07:54:33 +0000 (09:54 +0200)]
g_thread_create_full() can dereference NULL pointer

In case of the thread creation failure, and the thread was not created
as joinable, the g_thread_create_full() could dereference a NULL pointer.

https://bugzilla.gnome.org/show_bug.cgi?id=704523

11 years agogsourceclosure.c: Fix build on Windows
Chun-wei Fan [Thu, 18 Jul 2013 09:22:53 +0000 (17:22 +0800)]
gsourceclosure.c: Fix build on Windows

GPid is a HANDLE (aka void *) on Windows, not an int, so treat pid
accordingly on Windows, as using pid as a gulong directly would likely be
undesirable on Windows

https://bugzilla.gnome.org/show_bug.cgi?id=704447

11 years agogobject/tests/closure: fix on win32
Dan Winship [Thu, 18 Jul 2013 12:11:35 +0000 (08:11 -0400)]
gobject/tests/closure: fix on win32

(The g_closure_unref() was wrong, but was not causing errors on linux
for some reason.)

https://bugzilla.gnome.org/show_bug.cgi?id=704447

11 years agotests/closure: Fix invalid unref
Colin Walters [Sun, 21 Jul 2013 18:42:34 +0000 (19:42 +0100)]
tests/closure: Fix invalid unref

The closure is floating, g_source_set_closure() will claim the
ref, so we do not need to unref it.

11 years agoUpdated Czech translation
Marek Černocký [Sun, 21 Jul 2013 09:00:38 +0000 (11:00 +0200)]
Updated Czech translation

11 years agoGRegex: update documentation for partial matching
Sébastien Wilmet [Fri, 12 Jul 2013 14:44:13 +0000 (16:44 +0200)]
GRegex: update documentation for partial matching

The restrictions on partial matching no longer apply with PCRE >= 8.00.

The pcrepartial manpage contains the "FORMERLY RESTRICTED PATTERNS"
section:

"For  releases  of PCRE prior to 8.00, because of the way certain
internal optimizations were implemented in the pcre_exec() function, the
PCRE_PARTIAL option (predecessor of PCRE_PARTIAL_SOFT) could not be used
with all patterns. From release 8.00 onwards, the restrictions no
longer  apply,  and  partial  matching  with  can  be requested for any
pattern."

https://bugzilla.gnome.org/show_bug.cgi?id=704250

11 years agoImprove documentation
Sébastien Wilmet [Fri, 5 Jul 2013 11:23:11 +0000 (13:23 +0200)]
Improve documentation

- Mention G_SOURCE_CONTINUE and G_SOURCE_REMOVE in the GSourceFunc doc;
- Mention G_PARAM_READWRITE and G_PARAM_STATIC_STRINGS in the
  GParamFlags doc;
- Fix "Since:" version for G_DEFINE_ABSTRACT_TYPE_WITH_PRIVATE;
- Fix typo.

https://bugzilla.gnome.org/show_bug.cgi?id=704250

11 years agogsettings tool: report failure to write
Matthias Clasen [Fri, 19 Jul 2013 23:41:24 +0000 (19:41 -0400)]
gsettings tool: report failure to write

If a key is locked down, we should report an error if we
fail to write it.

https://bugzilla.gnome.org/show_bug.cgi?id=704424

11 years agotests/gvariant: Canonicalize to lower case to work on Illumos (OpenSolaris)
Igor Pashev [Fri, 19 Jul 2013 22:23:29 +0000 (18:23 -0400)]
tests/gvariant: Canonicalize to lower case to work on Illumos (OpenSolaris)

Solaris libc gives lowercase strings.

https://bugzilla.gnome.org/show_bug.cgi?id=704585

11 years agogdbusnameowning: Don't spew an error if we're releasing a name due to closing
Colin Walters [Fri, 19 Jul 2013 15:50:35 +0000 (11:50 -0400)]
gdbusnameowning: Don't spew an error if we're releasing a name due to closing

The default GNOME 3.10 login process right now has gdm spawn a session
for the login screen, retaining the X server, but closing the session
bus.  Right now in this scenario many GNOME components such as
gnome-settings-daemon attempt to "clean up" on shutdown by releasing
their owned names.

But they're shutting down because the session bus went away, so
releasing the name is pointless, and presently spews an error into the
journal.

This patch avoids that error spew, which helps system administrators
find *real* problems.

https://bugzilla.gnome.org/show_bug.cgi?id=704567

11 years agoglib-unix: fix handling of multiple signal source for the same signal
Giovanni Campagna [Tue, 16 Jul 2013 13:26:02 +0000 (15:26 +0200)]
glib-unix: fix handling of multiple signal source for the same signal

We can't reset the pending flag for a signal until we've traversed
the whole list, as the documentation clearly says that in case multiple
sources they all get invoked.
This is still racy if you get a signal after checking the flag
but before resetting it, but it was the same before. The correct
fix would be to use sigwait() or signalfd(), but that would mean
blocking all signals in all threads, which is not compatible
with existing applications.

https://bugzilla.gnome.org/show_bug.cgi?id=704322

11 years agogsourceclosure: fix idle/timeout/signal closures, add child watch support
Dan Winship [Wed, 17 Jul 2013 22:58:18 +0000 (18:58 -0400)]
gsourceclosure: fix idle/timeout/signal closures, add child watch support

And add a test for all source types.

https://bugzilla.gnome.org/show_bug.cgi?id=704267

11 years agoVisual Studio Builds: Update property sheets
Chun-wei Fan [Wed, 17 Jul 2013 08:54:35 +0000 (16:54 +0800)]
Visual Studio Builds: Update property sheets

"Install" the newly-introduced gpropertyaction.h header file, which is
required for GIO.

11 years agoVisual Studio Builds: "Install" gdbus-codegen
Chun-wei Fan [Wed, 17 Jul 2013 08:45:50 +0000 (16:45 +0800)]
Visual Studio Builds: "Install" gdbus-codegen

11 years agogsettings tool: Improve documentation
Matthias Clasen [Tue, 16 Jul 2013 23:21:31 +0000 (19:21 -0400)]
gsettings tool: Improve documentation

Mention that gsettings needs a session bus to make changes.

11 years agoGApplication: reply to ActivateAction
Ryan Lortie [Sun, 14 Jul 2013 21:11:59 +0000 (17:11 -0400)]
GApplication: reply to ActivateAction

Send a reply for org.freedesktop.Application.ActivateAction calls.  We
missed this before because nobody was waiting for it.

11 years agoMake a test desktop file a little less invalid
Matthias Clasen [Sun, 14 Jul 2013 15:35:56 +0000 (11:35 -0400)]
Make a test desktop file a little less invalid

Add a missing Name entry, and add a terminal ; to the Actions
entry in org.gtk.test.dbusappinfo.desktop. desktop-file-validate
still contains about the DBusActivatable entry and about the
missing Exec entries. The former will go away when desktop-file-validate
gets updated for the latest spec revision.

11 years agotests/mainloop: Fix assertions to really avoid race conditions
Colin Walters [Thu, 11 Jul 2013 15:07:17 +0000 (11:07 -0400)]
tests/mainloop: Fix assertions to really avoid race conditions

As the comment says, we may be delayed an arbitrary amount of time on
non-idle systems; update the assertions to reflect this.

This should fix periodic failures in the gnome-ostree continuous
integration system.

https://bugzilla.gnome.org/700460

11 years agoUpdated German translation
Christian Kirbach [Sun, 14 Jul 2013 10:24:07 +0000 (12:24 +0200)]
Updated German translation

11 years agogcancellable: update GCancellableSource, fix a race condition
Dan Winship [Mon, 3 Jun 2013 11:13:50 +0000 (08:13 -0300)]
gcancellable: update GCancellableSource, fix a race condition

Update GCancellableSource to call g_source_set_ready_time() when its
cancellable is cancelled, rather than manually checking the state of
the cancellable from prepare() and check().

This means that we now need to use g_cancellable_connect() rather than
g_signal_connect() at construction time, to avoid the connect/cancel
race condition. Likewise, use g_cancellable_disconnect() to avoid the
disconnect/cancel race condition when freeing the source. (In fact,
that was necessary in the earlier code as well, and might have
occasionally caused spurious criticals or worse.)

https://bugzilla.gnome.org/show_bug.cgi?id=701511

11 years agoRemove some unnecessary source prepare/check functions
Dan Winship [Mon, 3 Jun 2013 11:10:31 +0000 (08:10 -0300)]
Remove some unnecessary source prepare/check functions

GPollableSource and GSocket's "broken" source never trigger on their
own, so with the changes to GSources in the last cycle, their check
and prepare functions are unnecessary (and undesired).

https://bugzilla.gnome.org/show_bug.cgi?id=701511

11 years agogio: port unix streams to GUnixFDSource
Dan Winship [Sat, 1 Jun 2013 18:24:13 +0000 (15:24 -0300)]
gio: port unix streams to GUnixFDSource

The unix input/output streams were using a gio-only source type that
was mostly identical to GUnixFDSource. Get rid of that source type
and just use GUnixFDSource instead.

https://bugzilla.gnome.org/show_bug.cgi?id=701511

11 years agogsourceclosure: Add support for GUnixSignalWatchSource and GUnixFDSource
Dan Winship [Sat, 1 Jun 2013 18:23:15 +0000 (15:23 -0300)]
gsourceclosure: Add support for GUnixSignalWatchSource and GUnixFDSource

https://bugzilla.gnome.org/show_bug.cgi?id=701511

11 years agogsourceclosure: use g_cclosure_marshal_generic
Dan Winship [Sun, 2 Jun 2013 22:59:23 +0000 (19:59 -0300)]
gsourceclosure: use g_cclosure_marshal_generic

For the glib-defined source types, and any source type that defines a
closure callback but not a closure marshal, use
g_cclosure_marshal_generic. And then remove all the other remaining
source closure marshals.

https://bugzilla.gnome.org/show_bug.cgi?id=701511

11 years agoFix g_return_if_fail vs. return_val_if_fail
Ryan Lortie [Sat, 13 Jul 2013 19:48:39 +0000 (15:48 -0400)]
Fix g_return_if_fail vs. return_val_if_fail

11 years agoGAction: add function for printing detailed names
Ryan Lortie [Thu, 4 Jul 2013 20:24:38 +0000 (16:24 -0400)]
GAction: add function for printing detailed names

A counterpart for parsing of detailed actions into (name, target) pairs,
this new function prints them back.

We also add a new function to check for validity of action names.  Only
valid action names are allowed when printing.  Parsing accepts _some_
invalid names for backwards compatibility.

https://bugzilla.gnome.org/show_bug.cgi?id=704157

11 years agognetworkmonitornetlink: handle default route via device
Dan Winship [Tue, 4 Jun 2013 20:29:55 +0000 (17:29 -0300)]
gnetworkmonitornetlink: handle default route via device

If the default route is via a device rather than a particular IP
address, then neither RTA_DST nor RTA_GATEWAY will be present in the
RTM_NEWROUTE message, and so GNetworkMonitorNetlink would ignore it,
and then think there was no default route. (This could happen with
certain kinds of VPNs, if they were set to route all traffic through
the VPN.)

Fix this by recognizing routes that specify RTA_OIF ("output
interface") instead of RTA_GATEWAY.

https://bugzilla.gnome.org/show_bug.cgi?id=701609

11 years agoFix a typo in a filename in Makefile.am
Ryan Lortie [Thu, 11 Jul 2013 19:57:05 +0000 (15:57 -0400)]
Fix a typo in a filename in Makefile.am

11 years agoAdd a testcase for DBusActivatable=true
Ryan Lortie [Sat, 8 Jun 2013 21:31:09 +0000 (17:31 -0400)]
Add a testcase for DBusActivatable=true

Add a fairly realistic testcase that ensures that GDesktopAppInfo with
DBusActivatable=true can successfully talk to GApplication for a variety
of purposes.

https://bugzilla.gnome.org/show_bug.cgi?id=699259

11 years agoUpdated POTFILES.in
Piotr Drąg [Thu, 11 Jul 2013 19:09:15 +0000 (21:09 +0200)]
Updated POTFILES.in

11 years agoDeal with new automake test stuff
Ryan Lortie [Thu, 11 Jul 2013 17:54:47 +0000 (13:54 -0400)]
Deal with new automake test stuff

Add *.trs and *.log to .gitignore along with test-driver

Add *.trs and *.log to CLEANFILES in glib.mk.

11 years agoAdd missing file
Ryan Lortie [Thu, 11 Jul 2013 17:47:45 +0000 (13:47 -0400)]
Add missing file

This got removed during the OnlyShowIn shuffle.

11 years agoGDesktopAppInfo: remove note about OnlyShowIn
Ryan Lortie [Thu, 11 Jul 2013 17:04:23 +0000 (13:04 -0400)]
GDesktopAppInfo: remove note about OnlyShowIn

A previous version of the patch had OnlyShowIn support for desktop file
actions.  This was removed from the spec and the patch rewritten, but
this bit of documentation slipped through.  Remove it.

11 years agoImplement the Desktop Action specification
Ryan Lortie [Thu, 11 Jul 2013 16:46:59 +0000 (12:46 -0400)]
Implement the Desktop Action specification

For some time, the desktop file specification has supported "additional
application actions".  This is intended to allow for additional methods
of starting an app, such as a mail client having a "Compose New Message"
action that brings up the compose window instead of the folder list.

This patch adds support for this with a relatively minimal API.

In the case that the application is a GApplication and DBusActivatable,
desktop actions are translated into GActions that have been added to the
application with g_action_map_add_action().  This more or less closes
the loop on being able to activate an application with an action
invocation (instead of 'activate').

https://bugzilla.gnome.org/show_bug.cgi?id=664444

11 years agoadd GPropertyAction
Ryan Lortie [Fri, 28 Jun 2013 15:41:43 +0000 (11:41 -0400)]
add GPropertyAction

Add a new type of GAction that represents the value of a property on an
object.  As an example, this might be used on the "visible-child-name"
property of a GtkStack.

https://bugzilla.gnome.org/show_bug.cgi?id=703270

11 years agoGVariant: fix two small/theoretical leaks
Ryan Lortie [Thu, 11 Jul 2013 16:26:33 +0000 (12:26 -0400)]
GVariant: fix two small/theoretical leaks

Fix some leaks that turned up while valgrinding the GVariant testcase.

These leaks are small and only occur when there is already an error in
the program: they are leaks of temp strings used when formatting a
critical message.

These show up as leaks again the testcase under the new "expect
messages" approach.  Previously, we fork()ed and these caused the
subprocess to abort, which is why this was not noticed before.

11 years agoAdd g_variant_new_printf
Ryan Lortie [Thu, 11 Jul 2013 16:16:44 +0000 (12:16 -0400)]
Add g_variant_new_printf

Add a quick way to get a floating GVariant from printf formatting.

11 years agobump version
Matthias Clasen [Tue, 9 Jul 2013 18:28:19 +0000 (14:28 -0400)]
bump version

11 years ago2.37.4 2.37.4
Matthias Clasen [Tue, 9 Jul 2013 16:54:00 +0000 (12:54 -0400)]
2.37.4

11 years agoAdd G_TYPE_CHECKSUM to the docs
Matthias Clasen [Tue, 9 Jul 2013 17:30:49 +0000 (13:30 -0400)]
Add G_TYPE_CHECKSUM to the docs

11 years agoDocument g_simple_proxy_resolver_set_ignore_hosts
Matthias Clasen [Tue, 9 Jul 2013 17:28:07 +0000 (13:28 -0400)]
Document g_simple_proxy_resolver_set_ignore_hosts

11 years agoMinor doc tweak
Matthias Clasen [Tue, 9 Jul 2013 17:23:12 +0000 (13:23 -0400)]
Minor doc tweak

11 years ago[l10n] Update Catalan translation
Gil Forcada [Fri, 5 Jul 2013 00:23:48 +0000 (02:23 +0200)]
[l10n] Update Catalan translation

11 years agogthread: Use pthread_cond_timedwait_monotonic() if available
Sebastian Dröge [Thu, 4 Jul 2013 08:27:02 +0000 (10:27 +0200)]
gthread: Use pthread_cond_timedwait_monotonic() if available

Otherwise we have to rely on pthread_cond_timedwait() actually using
the monotonic clock, which might be true or not. On Android at least
it is using the realtime clock, no pthread_condattr_setclock() is available
but instead pthread_cond_timedwait_monotonic() can be used.

11 years agoEnsure that MAX_ALLOWED keeps working with the type macros
Emmanuele Bassi [Thu, 27 Jun 2013 14:15:40 +0000 (15:15 +0100)]
Ensure that MAX_ALLOWED keeps working with the type macros

When using the GLIB_VERSION_MAX_ALLOWED macro to define the upper bound
of allowed API the G_DEFINE_TYPE_EXTENDED starts warning about the newly
added g_type_class_adjust_private_offset() function; this effectively
introduces a run-time dependency on GLib 2.38 even if we don't use its
API explicitly.

https://bugzilla.gnome.org/show_bug.cgi?id=703191

11 years agoAdd missing G_BEGIN/END_DECLS to gsettingsschema.h.
Martin Ejdestig [Tue, 2 Jul 2013 17:53:04 +0000 (19:53 +0200)]
Add missing G_BEGIN/END_DECLS to gsettingsschema.h.

Without this fix, using any of the enclosed functions when building with a
C++ compiler will result in undefined references.

https://bugzilla.gnome.org/show_bug.cgi?id=703478

11 years agoGDBusConnection: be more careful with async GetAll
Ryan Lortie [Mon, 1 Jul 2013 21:42:43 +0000 (17:42 -0400)]
GDBusConnection: be more careful with async GetAll

It's possible to get a org.freedesktop.Properties.GetAll call even if we
have no readable properties in the introspection, in which case we
should return the empty list in the usual way.

We should certainly _not_ be dispatching to the method call handler of
an interface which has no properties (since it will not be expecting
this).

Add a check to make sure that there is at least one readable property
before assuming that a NULL get_property handler implies that we want to
handle properties asynchronously.

Add a testcase that was failing before the change and works after it.

https://bugzilla.gnome.org/show_bug.cgi?id=703437

11 years agoRevert two errant commits to GMutex, etc.
Ryan Lortie [Tue, 2 Jul 2013 03:30:31 +0000 (23:30 -0400)]
Revert two errant commits to GMutex, etc.

This reverts commits dfbac178bdcbcb042be928dcbeaa87742b511836 and
56348210f38209a11902e54b2db41833aab36414.

These two commits introduce undesirable behaviour and were made with no
apparent approval from anybody at all, and without reference to a bug or
mailing list discussion.

11 years agogspawn: Fix leak of internal pipe with G_SPAWN_LEAVE_DESCRIPTORS_OPEN
Paul Barbieri [Mon, 1 Jul 2013 20:10:28 +0000 (21:10 +0100)]
gspawn: Fix leak of internal pipe with G_SPAWN_LEAVE_DESCRIPTORS_OPEN

Even when the app author specifies G_SPAWN_LEAVE_DESCRIPTORS_OPEN,
we should avoid leaking our internal pipe machinery into the
child.

Commit message written by: Colin Walters <walters@verbum.org>

https://bugzilla.gnome.org/show_bug.cgi?id=703407

11 years agoFix typo in documentation
Bastien Nocera [Fri, 21 Jun 2013 18:07:58 +0000 (20:07 +0200)]
Fix typo in documentation

s/doucumentation/documentation

11 years agoFinish the previous fix for GMutex, GRecMutex, GRWLock and GCond
Jeffrey Stedfast [Sun, 30 Jun 2013 18:01:34 +0000 (14:01 -0400)]
Finish the previous fix for GMutex, GRecMutex, GRWLock and GCond

11 years agoFixed g_mutex_clear() to fully undo g_mutex_init()
Jeffrey Stedfast [Sun, 30 Jun 2013 17:46:28 +0000 (13:46 -0400)]
Fixed g_mutex_clear() to fully undo g_mutex_init()

In order to fully undo the effects of g_mutex_init(),
it is necessary to reset the internal mutex pointer
back to NULL so that a later call to g_mutex_init()
actually works as expected.

11 years agoDoc: small fixes
Sébastien Wilmet [Tue, 25 Jun 2013 20:11:54 +0000 (22:11 +0200)]
Doc: small fixes

This commit adds the GTestSubprocessFlags enum to the docs, and fixes
several minor typos in various places.

https://bugzilla.gnome.org/show_bug.cgi?id=703254

11 years agoMake G_STRFUNC consistent across platforms
Dan Winship [Fri, 14 Jun 2013 14:19:31 +0000 (11:19 -0300)]
Make G_STRFUNC consistent across platforms

Recent versions of clang have changed __PRETTY_FUNCTION__ to always
include the function signature (rather than including the function
signature in C++ but not in C like gcc does). This causes G_STRFUNC to
give different results under clang and gcc, causing some tests with
g_test_expect_messages() to fail.

Fix this by only using __PRETTY_FUNCTION__ in C++, and using
__FUNCTION__ in C. (Under gcc this change has no effect.)

https://bugzilla.gnome.org/show_bug.cgi?id=702147

11 years agoImprove various section headings in the docs
Matthias Clasen [Sun, 30 Jun 2013 02:51:31 +0000 (22:51 -0400)]
Improve various section headings in the docs

We don't use # or other forms of links in the section headings.
We also capitalize them and don't put a final period.

This commit corrects several headings to follow these rules.

11 years agodocs: minor formatting fixes to the gresource man page
Matthias Clasen [Sun, 30 Jun 2013 02:46:38 +0000 (22:46 -0400)]
docs: minor formatting fixes to the gresource man page

Make the SECTION argument appear the same way throughout.

11 years agotests: add a test for the previous commit
Dan Winship [Tue, 25 Jun 2013 13:34:29 +0000 (09:34 -0400)]
tests: add a test for the previous commit

11 years agogmain: handle blocked source in g_source_add_child_source()
Wim Taymans [Thu, 30 May 2013 14:46:02 +0000 (16:46 +0200)]
gmain: handle blocked source in g_source_add_child_source()

When a child_source is added to a blocked source it has no context, yet we
call block_source on it that segfaults when it dereferences the NULL context
when it attempts to remove the file descriptors. To fix this we:

- Ensure that when we block a source, we don't attempt to remove its file
  descriptors from a NULL context.

- Also ensure that when we attach a blocked source to a context, we don't add the
  file descriptors to the context.

https://bugzilla.gnome.org/show_bug.cgi?id=701283

11 years agoversion bump
Ryan Lortie [Mon, 24 Jun 2013 16:13:30 +0000 (12:13 -0400)]
version bump

11 years agoGLib 2.37.3 2.37.3
Ryan Lortie [Mon, 24 Jun 2013 15:05:20 +0000 (11:05 -0400)]
GLib 2.37.3

11 years agosmall docs xml fixup
Ryan Lortie [Mon, 24 Jun 2013 15:19:06 +0000 (11:19 -0400)]
small docs xml fixup

11 years agoRename the generated private data getter function
Emmanuele Bassi [Mon, 24 Jun 2013 14:43:04 +0000 (15:43 +0100)]
Rename the generated private data getter function

As it turns out, we have examples of internal functions called
type_name_get_private() in the wild (especially among older libraries),
so we need to use a name for the per-instance private data getter
function that hopefully won't conflict with anything.

11 years agogio: Missing G_ADD_PRIVATE in GFileInputStream
Emmanuele Bassi [Mon, 24 Jun 2013 14:43:00 +0000 (15:43 +0100)]
gio: Missing G_ADD_PRIVATE in GFileInputStream

11 years agodocs: Clean up the GObject tutorial a bit
Emmanuele Bassi [Wed, 12 Jun 2013 14:18:29 +0000 (15:18 +0100)]
docs: Clean up the GObject tutorial a bit

Started off by using the new instance private data macro, ended up
cleaning up the obscure, out of date, or simply broken concepts and
paragraphs.

https://bugzilla.gnome.org/show_bug.cgi?id=700035

11 years agodocs: Include newly added functions and macros
Emmanuele Bassi [Mon, 10 Jun 2013 21:21:02 +0000 (22:21 +0100)]
docs: Include newly added functions and macros

The functions are private, and an implementation detail of the macros.

https://bugzilla.gnome.org/show_bug.cgi?id=700035

11 years agogio: Use the new private instance data declaration
Emmanuele Bassi [Mon, 10 Jun 2013 23:29:58 +0000 (00:29 +0100)]
gio: Use the new private instance data declaration

Use the newly added macros, and remove the explicit calls to
g_type_class_add_private().

https://bugzilla.gnome.org/show_bug.cgi?id=700035

11 years agogparam: Use the new private instance data API
Emmanuele Bassi [Mon, 10 Jun 2013 23:29:22 +0000 (00:29 +0100)]
gparam: Use the new private instance data API

https://bugzilla.gnome.org/show_bug.cgi?id=700035

11 years agogobject: Add private field access macros
Emmanuele Bassi [Sun, 23 Jun 2013 13:50:49 +0000 (14:50 +0100)]
gobject: Add private field access macros

Similar to G_STRUCT_MEMBER and G_STRUCT_MEMBER_P, but automatically using
the G_PRIVATE_OFFSET macro.

https://bugzilla.gnome.org/show_bug.cgi?id=700035

11 years agoAdd G_PRIVATE_OFFSET
Emmanuele Bassi [Wed, 19 Jun 2013 19:41:02 +0000 (20:41 +0100)]
Add G_PRIVATE_OFFSET

A macro that evaluates to the offset of a field inside an instance
private data structure.

https://bugzilla.gnome.org/show_bug.cgi?id=700035

11 years agoAllow registering instance private data during get_type()
Emmanuele Bassi [Thu, 9 May 2013 21:41:26 +0000 (14:41 -0700)]
Allow registering instance private data during get_type()

For static types, it should be possible to register a private data
structure right when we are registering the type, i.e. from the
get_type() implementation. By allowing this, we can take advantage of
the existing type definition macros to cut down the amount of code
necessary (as well as the knowledge baggage) when creating a new type.

The main issue with this new feature is that it cannot be mixed with the
old idiomatic way of adding private instance data by calling a function
in the middle of the class_init() implementation, as that imposes the
additional constraint of initializing the whole type hierarchy in order
to retrieve the offset of the private data in the GTypeInstance
allocation.

For this reason we are going to follow a two-step process; in the first
step, we are going to introduce the new (semi-private) API to register
the intent to add private instance data from within the get_type()
implementation, and hide it behind a macro; at the same time, the
G_DEFINE_TYPE_EXTENDED macro is going to be modified so that it will
register the private instance data if the macro was used, using a new
(semi-private) function as well. Once we have migrated all our code, we
will make the first new function perform the actual private data
registration, and turn the second new function into a no-op. This should
guarantee a transparent migration of existing code to the new idiomatic
form.

https://bugzilla.gnome.org/show_bug.cgi?id=700035

11 years agoDefine GTESTER_REPORT for non-GLIB too
Matthias Clasen [Sun, 23 Jun 2013 23:35:15 +0000 (19:35 -0400)]
Define GTESTER_REPORT for non-GLIB too

11 years agodocs: fix GTK-Doc build
Dieter Verfaillie [Sun, 23 Jun 2013 12:15:05 +0000 (14:15 +0200)]
docs: fix GTK-Doc build

cd html && gtkdoc-mkhtml $mkhtml_options  gio ../gio-docs.xml
../xml/gdbusconnection.xml:2063: parser error : Opening and ending tag mismatch: literal line 2062 and para
</para>
       ^

11 years agoGDBusMethodInvocation: add missing 'goto out'
Ryan Lortie [Sat, 22 Jun 2013 17:41:12 +0000 (13:41 -0400)]
GDBusMethodInvocation: add missing 'goto out'

We do a bunch of new validity checks for return values in response to
calls on the D-Bus property API but we miss the 'goto out' in one case.
Add it.

https://bugzilla.gnome.org/show_bug.cgi?id=698375

11 years agoGDBusMethodInvocation: add property return checks
Ryan Lortie [Wed, 17 Apr 2013 13:45:23 +0000 (09:45 -0400)]
GDBusMethodInvocation: add property return checks

Add some type checking for the values returned from async property
handling calls, similar in spirit to the type checking we do for normal
method calls.

https://bugzilla.gnome.org/show_bug.cgi?id=698375

11 years agoGDBusConnection: allow async property handling
Ryan Lortie [Wed, 17 Apr 2013 13:30:15 +0000 (09:30 -0400)]
GDBusConnection: allow async property handling

The existing advice in the documentation to "simply" register the
"org.freedesktop.DBus.Properties" interface if you want to handle
properties asynchronously is pretty unreasonable.  If you want to handle
this interface you have to deal with all properties for all interfaces
on the path, and you have to do all of the checking for yourself.  You
also have to provide your own introspection data.

Introduce a new convention for dealing with properties asynchronously.

If the user provides NULL for their get_property() or set_property()
functions in the vtable and has properties registered then the
properties are sent to the method_call() handler.  We get lucky here
that this function takes an "interface_name" parameter that we can set
to "org.freedesktop.DBus.Properties".

We also do the user the favour of setting the GDBusPropertyInfo on the
GDBusMethodInvocation for their convenience (for much the same reasons
as they might want the already-available GDBusMethodInfo).

Add a testcase as well as a bunch of documentation about this new
feature.

https://bugzilla.gnome.org/show_bug.cgi?id=698375

11 years agoGDBusMethodInvocation: add 'property_info'
Ryan Lortie [Wed, 17 Apr 2013 13:28:05 +0000 (09:28 -0400)]
GDBusMethodInvocation: add 'property_info'

Add a field on GDBusMethodInvocation for GDBusPropertyInfo.

For now, it is always %NULL.  It will be set in future patches.

https://bugzilla.gnome.org/show_bug.cgi?id=698375

11 years agoGDBusConnection: some straight-up refactoring
Ryan Lortie [Wed, 17 Apr 2013 13:24:36 +0000 (09:24 -0400)]
GDBusConnection: some straight-up refactoring

Separate the code for validating a method call from the code for
actually scheduling it for dispatch.

This will allow property Get/Set/GetAll calls to be dispatched to the
method_call handler without duplicating a lot of code.

https://bugzilla.gnome.org/show_bug.cgi?id=698375

11 years agoGDBusConnection: move 'Set' typecheck to worker
Ryan Lortie [Sat, 22 Jun 2013 17:37:54 +0000 (13:37 -0400)]
GDBusConnection: move 'Set' typecheck to worker

We presently do a lot of checks on property sets (signature check,
correct interface, property exists, etc.) from the worker thread before
dispatching the call to the user's thread.  The typecheck, however, is
saved until just before calling the user's vfunc, in their thread.

My best guess is that this was done to save having to unpack the value
from the tuple twice (since we don't unpack it until we're just about
the call the user).

This patch moves the check to the same place as all of the other checks.

The purpose of this change is to allow for sharing this check with the
(soon-to-be-introduced) case of handing property sets from
method_call().

This change has a minor side effect: error messages generated by sending
invalid values to property sets are no longer guaranteed to be correctly
ordered with respect to the void returns from successful property sets.
They will instead be correctly ordered with respect to the other error
messages.

https://bugzilla.gnome.org/show_bug.cgi?id=698375

11 years agoGDBusConnection: remove an unused g_variant_get()
Ryan Lortie [Wed, 17 Apr 2013 10:52:59 +0000 (12:52 +0200)]
GDBusConnection: remove an unused g_variant_get()

https://bugzilla.gnome.org/show_bug.cgi?id=698375

11 years agoMakefile.am: move gtk-doc.make back to EXTRA_DIST
Ryan Lortie [Wed, 5 Jun 2013 22:46:29 +0000 (18:46 -0400)]
Makefile.am: move gtk-doc.make back to EXTRA_DIST

0192c599377c35cc465eed1ae61de56d5a1034e8 moved this file from EXTRA_DIST TO
BUILT_EXTRA_DIST for an unknown reason.

Having it here causes the timestamp to be updated during 'make dist' to
something newer than docs/reference/*/Makefile.in.  This is a problem
because those Makefile.in are generated by including gtk-doc.make, so
automake becomes convinced that they need to be regenerated.  This is a
problem for people who don't have automake installed, or have the wrong
version.

The timestamp problem has been around for quite a while, but it only
became a problem recently after automake changed policy about this in
commit a22717dffe37f30ef2ad2c355b68c9b3b5e4b8c7.

Specifically:

https://bugzilla.gnome.org/show_bug.cgi?id=700350

11 years agoRevert "g_file_set_contents(): don't fsync on ext3/4"
Colin Walters [Thu, 20 Jun 2013 17:13:29 +0000 (13:13 -0400)]
Revert "g_file_set_contents(): don't fsync on ext3/4"

We didn't actually do any real-world testing of this, and
unsurprisingly it turns out to break in at least one widely-used
configuration (Fedora 19 x86_64, ext4 on LVM).

This reverts commit 9d0c17b50102267a5029b58b1f44efbad82d8f03.

https://bugzilla.gnome.org/show_bug.cgi?id=701560

11 years agoUpdated Norwegian bokmål translation
Kjartan Maraas [Thu, 20 Jun 2013 09:46:58 +0000 (11:46 +0200)]
Updated Norwegian bokmål translation

11 years agoAdd MSVC Projects for Utility Programs
Chun-wei Fan [Thu, 20 Jun 2013 07:48:32 +0000 (15:48 +0800)]
Add MSVC Projects for Utility Programs

Build and "install" the gio-querymodules and gdbus utility programs so that
the Visual Studio builds of GLib is more comprehensive.  The Python scripts
for the GDBus codegen will be added to "installation" later.