Re: [PATCH BlueZ] gdbus: Fix not emiting PropertiesChanged

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi,

On Wed, Nov 22, 2017 at 11:14 AM, Luiz Augusto von Dentz
<luiz.dentz@xxxxxxxxx> wrote:
> Hi Bastien,
>
> On Wed, Nov 22, 2017 at 12:05 AM, Bastien Nocera <hadess@xxxxxxxxxx> wrote:
>>> Re: [PATCH BlueZ] gdbus: Fix not emiting PropertiesChanged
>>
>> emitting.
>>
>> On Tue, 2017-11-21 at 22:04 +0200, Luiz Augusto von Dentz wrote:
>>> From: Luiz Augusto von Dentz <luiz.von.dentz@xxxxxxxxx>
>>>
>>> If and interface is removed while properties are pending it would cause
>>
>> "an interface".
>>
>>> process_properties_from_interface to clear data->pending_prop when it
>>> should only clear the iface->pending_prop.
>>
>> I prefer my version, which allows the pending properties to be cleared
>> out if the pending ones were for that interface. I also prefer the
>> subject line I used, describing the actual problem it fixes, and the
>> commit message going more into details.
>
> I guess this one is simpler to maintain, also notice that iterating in
> the data->interfaces to check if there are no other pending_prop has
> almost the same effect as process_property_changes, what would make a
> difference would be to prevent process_changes but that has to run
> anyway to propagate the interfaces added/removed. Also notice that
> data->pending_prop is clear earlier than the original fix for
> duplicated signals, the one that introduced this problem, that way we
> don't reintroduce the original problem.
>
> Regarding the commit message, we usually avoid BlueZ specific
> description there as gdbus is shared with other projects.
>
>>
>> But up to you.
>>
>> Cheers
>>
>>> ---
>>>  gdbus/object.c | 4 ++--
>>>  1 file changed, 2 insertions(+), 2 deletions(-)
>>>
>>> diff --git a/gdbus/object.c b/gdbus/object.c
>>> index afb458764..5c8ad7a55 100644
>>> --- a/gdbus/object.c
>>> +++ b/gdbus/object.c
>>> @@ -1659,8 +1659,6 @@ static void
>>> process_properties_from_interface(struct generic_data *data,
>>>       DBusMessageIter iter, dict, array;
>>>       GSList *invalidated;
>>>
>>> -     data->pending_prop = FALSE;
>>> -
>>>       if (iface->pending_prop == NULL)
>>>               return;
>>>
>>> @@ -1722,6 +1720,8 @@ static void process_property_changes(struct
>>> generic_data *data)
>>>  {
>>>       GSList *l;
>>>
>>> +     data->pending_prop = FALSE;
>>> +
>>>       for (l = data->interfaces; l != NULL; l = l->next) {
>>>               struct interface_data *iface = l->data;
>>>

Applied.

-- 
Luiz Augusto von Dentz
--
To unsubscribe from this list: send the line "unsubscribe linux-bluetooth" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html



[Index of Archives]     [Bluez Devel]     [Linux Wireless Networking]     [Linux Wireless Personal Area Networking]     [Linux ATH6KL]     [Linux USB Devel]     [Linux Media Drivers]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [Big List of Linux Books]

  Powered by Linux