From 07ea98dab91975e5fb97ba7c3db7337e777f7359 Mon Sep 17 00:00:00 2001 From: emersion Date: Mon, 17 Sep 2018 22:01:35 +0200 Subject: backend/session: add assertions --- backend/session/direct-freebsd.c | 18 +++++++++++++----- 1 file changed, 13 insertions(+), 5 deletions(-) (limited to 'backend/session/direct-freebsd.c') diff --git a/backend/session/direct-freebsd.c b/backend/session/direct-freebsd.c index cecfb0c1..bce1c871 100644 --- a/backend/session/direct-freebsd.c +++ b/backend/session/direct-freebsd.c @@ -1,3 +1,4 @@ +#include #include #include #include @@ -32,8 +33,14 @@ struct direct_session { struct wl_event_source *vt_source; }; +static struct direct_session *direct_session_from_session( + struct wlr_session *base) { + assert(base->impl == &session_direct); + return (struct direct_session *)base; +} + static int direct_session_open(struct wlr_session *base, const char *path) { - struct direct_session *session = wl_container_of(base, session, base); + struct direct_session *session = direct_session_from_session(base); int fd = direct_ipc_open(session->sock, path); if (fd < 0) { @@ -46,7 +53,7 @@ static int direct_session_open(struct wlr_session *base, const char *path) { } static void direct_session_close(struct wlr_session *base, int fd) { - struct direct_session *session = wl_container_of(base, session, base); + struct direct_session *session = direct_session_from_session(base); int ev; struct drm_version dv = {0}; @@ -60,12 +67,12 @@ static void direct_session_close(struct wlr_session *base, int fd) { } static bool direct_change_vt(struct wlr_session *base, unsigned vt) { - struct direct_session *session = wl_container_of(base, session, base); + struct direct_session *session = direct_session_from_session(base); return ioctl(session->tty_fd, VT_ACTIVATE, (int)vt) == 0; } static void direct_session_destroy(struct wlr_session *base) { - struct direct_session *session = wl_container_of(base, session, base); + struct direct_session *session = direct_session_from_session(base); struct vt_mode mode = { .mode = VT_AUTO, }; @@ -157,7 +164,8 @@ static bool setup_tty(struct direct_session *session, struct wl_display *display } if (ioctl(fd, KDSKBMODE, K_CODE)) { - wlr_log_errno(WLR_ERROR, "Failed to set keyboard mode K_CODE on tty %d", tty); + wlr_log_errno(WLR_ERROR, + "Failed to set keyboard mode K_CODE on tty %d", tty); goto error; } -- cgit v1.2.3