GDBusConnection: move 'Set' typecheck to worker
authorRyan Lortie <desrt@desrt.ca>
Sat, 22 Jun 2013 17:37:54 +0000 (13:37 -0400)
committerRyan Lortie <desrt@desrt.ca>
Sat, 22 Jun 2013 17:37:54 +0000 (13:37 -0400)
commit02f5cdd98320d330d9b94ccfb15a0f6986534930
tree72e33da3545c57de700e1922f5d62725217ef212
parent0d29b17af7c5a79e143c31208cc0b37f7c09d481
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
gio/gdbusconnection.c