On Fri, Jan 19, 2018 at 12:18:38PM +0200, Pekka Paalanen wrote:
> On Wed, 20 Dec 2017 16:18:01 +0200
> Alexandros Frantzis <alexandros.frant...@collabora.com> wrote:
> 
> > Implement the zwp_input_timestamps_v1.get_touch_timestamps request to
> > subscribe to timestamp events for wl_touch resources.
> > 
> > Signed-off-by: Alexandros Frantzis <alexandros.frant...@collabora.com>
> > ---
> >  libweston/compositor.h |  2 ++
> >  libweston/input.c      | 53 
> > +++++++++++++++++++++++++++++++++++++++++++-------
> >  tests/touch-test.c     | 46 +++++++++++++++++++++++++++++++++++++++++++
> >  3 files changed, 94 insertions(+), 7 deletions(-)
> 
> > @@ -4643,7 +4665,24 @@ input_timestamps_manager_get_touch_timestamps(struct 
> > wl_client *client,
> >                                           uint32_t id,
> >                                           struct wl_resource 
> > *touch_resource)
> >  {
> > -   wl_client_post_no_memory(client);
> > +   struct weston_seat *seat = wl_resource_get_user_data(touch_resource);
> > +   struct wl_resource *input_ts;
> > +
> > +   input_ts = wl_resource_create(client,
> > +                                 &zwp_input_timestamps_v1_interface,
> > +                                 1, id);
> > +   if (!input_ts) {
> > +           wl_client_post_no_memory(client);
> > +           return;
> > +   }
> > +
> > +   wl_resource_set_implementation(input_ts,
> > +                                  &input_timestamps_interface,
> > +                                  touch_resource,
> > +                                  unbind_resource);
> > +
> > +   wl_list_insert(&seat->touch_state->timestamps_list,
> > +                  wl_resource_get_link(input_ts));
> 
> Btw. each of the three patches adds a new list to weston_keyboard,
> weston_pointer, weston_touch, but following the example already set in
> the code, do not handle that struct getting destroyed while client
> resources for it still exist. This would be good to fix, at least for
> the new lists introduced in these patches. I only realized that after
> sending the earlier R-bs.
> 
> You can find the places with:
>       $ git grep -p 'XXX: What about'
> 
> Otherwise the patch looks good, tests included. Nice work with the
> series.
> 
> Thanks,
> pq

Hi Pekka,

thanks for the review.

While investigating how to best solve this I realized that in order to
safely destroy the timestamp(_manager) objects, I had to first ensure
that the input objects are also properly destroyed. I have posted a
proposal for making the destruction of input objects safe here:

https://lists.freedesktop.org/archives/wayland-devel/2018-January/036701.html

When the input object destruction issues are resolved I will post
an updated version of this proposal.

Thanks,
Alexandros


_______________________________________________
wayland-devel mailing list
wayland-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/wayland-devel

Reply via email to