From: Sung-Jin Park Date: Tue, 18 Aug 2020 07:28:56 +0000 (+0900) Subject: DSWaylandTouch: fix crash at the constructor and setFocus() X-Git-Tag: accepted/tizen/unified/20200820.213435~34 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=3a7e72fe0377bcc69ee3d77d4a56a9cee06a516c;p=platform%2Fcore%2Fuifw%2Flibds.git DSWaylandTouch: fix crash at the constructor and setFocus() Change-Id: I6406ab69856a7c21467ee11888edf122f27e9f7a Signed-off-by: Sung-Jin Park --- diff --git a/src/DSWaylandServer/DSWaylandTouch.cpp b/src/DSWaylandServer/DSWaylandTouch.cpp index c2a3fa1..25a267b 100644 --- a/src/DSWaylandServer/DSWaylandTouch.cpp +++ b/src/DSWaylandServer/DSWaylandTouch.cpp @@ -35,7 +35,7 @@ DSWaylandTouchPrivate::DSWaylandTouchPrivate(DSWaylandSeat *seat, DSWaylandTouch : DSObjectPrivate(touch), __p_ptr(touch), __seat(seat), - __compositor(seat->getCompositor()), + __compositor(seat ? (seat->getCompositor()) : nullptr), __waylandSurface(nullptr), __wlTouchResource(nullptr) { @@ -52,8 +52,12 @@ void DSWaylandTouchPrivate::setFocus(DSWaylandSurface *waylandSurface) __waylandSurface = waylandSurface; - if (!waylandSurface) + if (!waylandSurface || !waylandSurface->hasResource()) + { + __wlTouchResource = nullptr; + DSLOG_INF("DSWaylandTouchPrivate", "wlTouchResource has been set to null."); return; + } struct ::wl_resource *surface = waylandSurface->getWlResource(); auto client = wl_resource_get_client(surface);