CancelRequest broken (was: Re: [PATCH upower] Fix the LatencyChanged signal)
Sascha Silbe
silbe at activitycentral.com
Tue May 22 09:42:08 PDT 2012
Sascha Silbe <silbe at activitycentral.com> writes:
> The type of the 'value' parameter of the LatencyChanged signal is
> integer, not boolean. Fixing this causes the signal to actually be
> emitted.
CancelRequest is broken in a similar way; calling it will cause UPower
to segfault.
The documented interface [1] is to pass the latency "type" along with
the cookie:
CancelRequest (in 's' type,
in 'u' cookie)
However, UPower internally uses only the cookie value (and generates
cookies unique across all latency types, not just a single one) and
doesn't expect the type to be passed:
void
up_qos_cancel_request (UpQos *qos, guint cookie, DBusGMethodInvocation *context)
The most straightforward way to fix this would be to add the type string
to the up_qos_cancel_request() signature and simply ignore it in the
body. However I wonder whether it wouldn't be better to change the
public API, dropping the type parameter from the CancelRequest
signature. AFAICT it never worked, even in DeviceKit-Power, so there are
no compatibility issues.
Sascha
[1] http://upower.freedesktop.org/docs/QoS.html#QoS.CancelRequest
--
http://sascha.silbe.org/
http://www.infra-silbe.de/
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 489 bytes
Desc: not available
URL: <http://lists.freedesktop.org/archives/devkit-devel/attachments/20120522/c2451a9a/attachment.pgp>
More information about the devkit-devel
mailing list