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

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

 



Hi Bastien,

On Wed, Nov 22, 2017 at 3:39 PM, Bastien Nocera <hadess@xxxxxxxxxx> wrote:
> On Wed, 2017-11-22 at 15:38 +0200, Luiz Augusto von Dentz wrote:
>> 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.
>
> You could at least have applied fixes to the 2 typos I mentioned :(

You mean the one typo in the description, and instead of an, or did I
miss something in the code?

-- 
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