[PATCH weston 00/17] Don't allow direct use of seat->device pointers

Bryce Harrington bryce at osg.samsung.com
Thu Jul 16 19:24:38 PDT 2015


On Wed, Jul 15, 2015 at 01:00:31PM -0500, Derek Foreman wrote:
> "v7" of my "Don't allow direct use of seat->device pointers" stuff.
> 
> Those pointers are funny in that they only exist after a device has been
> plugged in, and they don't ever go away.  We're supposed to check if
> the associated _device_count > 0 before using them.  The final patch
> in this series adds helper functions that do that, renames the pointers
> in the seat struct and updates users accordingly.
> 
> Some of the previous series has landed and there are 4 new patches near
> the end.  This is all rebased against master as of today.
> 
> For the final patch there's still an open question wrt seat_get_* in the
> seat_interface: do we really have to use *_state directly here to avoid a
> race condition?
> 
> Derek Foreman (17):
>   text-backend: Replace focus_listener_initialized with a bool
>   exposay: Test keyboard presence before using keyboard pointer
>    - style change
>   bindings: Stop exporting internal functions
>   compositor-drm: Simplify logic in setup_output_seat_constraint
>   input: Pass the appropriate pointer type to bindings instead of a seat
>    - minor style change
>   desktop-shell: Make surface_touch_move take a touch instead of a seat
>   desktop-shell: Make surface_move take a pointer instead of a seat
>   desktop-shell: Make surface_rotate take a pointer instead of a seat
>   desktop-shell: Make surface_resize take a pointer instead of a seat
>   desktop-shell: Use the grabbed pointer in popup_grab_button
>   bindings: make install_binding_grab take a keyboard instead of a seat
>   bindings: Make run binding functions take apropriate device instead of
>     a seat

Landed the above (plus one more seat->keyboard pointer that was hiding
from you)

To ssh://git.freedesktop.org/git/wayland/weston
   d0ead48..4a8a3a1  master -> master

> <new stuff>
>   input: Check device counts in bind_seat()
>   desktop-shell: Don't call wl_list_init() in the middle of a list
>   desktop-shell: Check for device presence properly
>   fullscreen-shell: Test for device presence properly
> </new stuff>
> 
>   input: Don't test keyboard/pointer/touch pointers
>    style and grammar changes
>    *_seat_caps_changed now use the helper functions
>    the "real" pointers are now named *_state instead of *_ptr
>    changes in bind_seat split into a new patch

Review still needed for the above.

Bryce
 
>  desktop-shell/exposay.c             |  39 ++--
>  desktop-shell/input-panel.c         |   7 +-
>  desktop-shell/shell.c               | 366 +++++++++++++++++++++---------------
>  desktop-shell/shell.h               |   2 +-
>  fullscreen-shell/fullscreen-shell.c |  18 +-
>  ivi-shell/hmi-controller.c          |  30 +--
>  ivi-shell/input-panel-ivi.c         |   7 +-
>  ivi-shell/ivi-shell.c               |   4 +-
>  src/bindings.c                      |  85 +++++----
>  src/compositor-drm.c                |  31 +--
>  src/compositor-fbdev.c              |   3 +-
>  src/compositor-rpi.c                |   3 +-
>  src/compositor-wayland.c            |  14 +-
>  src/compositor-x11.c                |  18 +-
>  src/compositor.c                    |  29 +--
>  src/compositor.h                    |  38 ++--
>  src/data-device.c                   |  41 ++--
>  src/gl-renderer.c                   |   8 +-
>  src/input.c                         | 247 ++++++++++++++++--------
>  src/libinput-seat.c                 |  15 +-
>  src/main.c                          |   7 +-
>  src/pixman-renderer.c               |   2 +-
>  src/screenshooter.c                 |  14 +-
>  src/text-backend.c                  |  25 +--
>  src/zoom.c                          |   8 +-
>  tests/surface-screenshot.c          |  10 +-
>  tests/weston-test.c                 |   9 +-
>  xwayland/dnd.c                      |   3 +-
>  xwayland/window-manager.c           |  23 ++-
>  29 files changed, 675 insertions(+), 431 deletions(-)
> 
> -- 
> 2.1.4
> 
> _______________________________________________
> wayland-devel mailing list
> wayland-devel at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/wayland-devel


More information about the wayland-devel mailing list