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
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
Rico Tzschichholz [Sat, 27 Jul 2013 07:02:58 +0000 (09:02 +0200)]
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.
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
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.
Sweta Kothari [Fri, 26 Jul 2013 09:20:22 +0000 (14:50 +0530)]
updated Gujarati translations
Nilamdyuti Goswami [Thu, 25 Jul 2013 07:48:58 +0000 (13:18 +0530)]
Assamese translation updated
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
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
Shantha kumar [Wed, 24 Jul 2013 09:27:30 +0000 (14:57 +0530)]
Tamil Translation Updated
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
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
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
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.
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
Daniel Mustieles [Mon, 22 Jul 2013 11:48:58 +0000 (13:48 +0200)]
Updated Spanish translation
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
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
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
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.
Marek Černocký [Sun, 21 Jul 2013 09:00:38 +0000 (11:00 +0200)]
Updated Czech translation
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
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
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
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
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
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
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
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.
Chun-wei Fan [Wed, 17 Jul 2013 08:45:50 +0000 (16:45 +0800)]
Visual Studio Builds: "Install" gdbus-codegen
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.
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.
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.
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
Christian Kirbach [Sun, 14 Jul 2013 10:24:07 +0000 (12:24 +0200)]
Updated German translation
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
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
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
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
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
Ryan Lortie [Sat, 13 Jul 2013 19:48:39 +0000 (15:48 -0400)]
Fix g_return_if_fail vs. return_val_if_fail
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
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
Ryan Lortie [Thu, 11 Jul 2013 19:57:05 +0000 (15:57 -0400)]
Fix a typo in a filename in Makefile.am
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
Piotr Drąg [Thu, 11 Jul 2013 19:09:15 +0000 (21:09 +0200)]
Updated POTFILES.in
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.
Ryan Lortie [Thu, 11 Jul 2013 17:47:45 +0000 (13:47 -0400)]
Add missing file
This got removed during the OnlyShowIn shuffle.
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.
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
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
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.
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.
Matthias Clasen [Tue, 9 Jul 2013 18:28:19 +0000 (14:28 -0400)]
bump version
Matthias Clasen [Tue, 9 Jul 2013 16:54:00 +0000 (12:54 -0400)]
2.37.4
Matthias Clasen [Tue, 9 Jul 2013 17:30:49 +0000 (13:30 -0400)]
Add G_TYPE_CHECKSUM to the docs
Matthias Clasen [Tue, 9 Jul 2013 17:28:07 +0000 (13:28 -0400)]
Document g_simple_proxy_resolver_set_ignore_hosts
Matthias Clasen [Tue, 9 Jul 2013 17:23:12 +0000 (13:23 -0400)]
Minor doc tweak
Gil Forcada [Fri, 5 Jul 2013 00:23:48 +0000 (02:23 +0200)]
[l10n] Update Catalan translation
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.
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
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
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
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.
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
Bastien Nocera [Fri, 21 Jun 2013 18:07:58 +0000 (20:07 +0200)]
Fix typo in documentation
s/doucumentation/documentation
Jeffrey Stedfast [Sun, 30 Jun 2013 18:01:34 +0000 (14:01 -0400)]
Finish the previous fix for GMutex, GRecMutex, GRWLock and GCond
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.
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
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
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.
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.
Dan Winship [Tue, 25 Jun 2013 13:34:29 +0000 (09:34 -0400)]
tests: add a test for the previous commit
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
Ryan Lortie [Mon, 24 Jun 2013 16:13:30 +0000 (12:13 -0400)]
version bump
Ryan Lortie [Mon, 24 Jun 2013 15:05:20 +0000 (11:05 -0400)]
GLib 2.37.3
Ryan Lortie [Mon, 24 Jun 2013 15:19:06 +0000 (11:19 -0400)]
small docs xml fixup
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.
Emmanuele Bassi [Mon, 24 Jun 2013 14:43:00 +0000 (15:43 +0100)]
gio: Missing G_ADD_PRIVATE in GFileInputStream
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
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
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
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
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
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
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
Matthias Clasen [Sun, 23 Jun 2013 23:35:15 +0000 (19:35 -0400)]
Define GTESTER_REPORT for non-GLIB too
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>
^
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
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
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
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
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
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
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
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
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
Kjartan Maraas [Thu, 20 Jun 2013 09:46:58 +0000 (11:46 +0200)]
Updated Norwegian bokmål translation
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.