summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTran Ba Khang(MS/EMC31-XC) <Khang.TranBa@vn.bosch.com>2022-11-18 10:00:30 +0700
committerTran Ba Khang(MS/EMC31-XC) <Khang.TranBa@vn.bosch.com>2022-11-28 13:49:23 +0700
commitb5878a99cf34a07fbe0065db11265fd1145b27af (patch)
treea8b88e73520f5dc68992b492c91f7809519f0e54
parentf6911a11dc911a5bcb380d0895db6cfd533a3569 (diff)
downloadwayland-ivi-extension-b5878a99cf34a07fbe0065db11265fd1145b27af.tar.gz
EGLWLInputEventExample: fix crash when exit
The m_wlCursor is allocated on wl_cursor_theme_load, and free on wl_cursor_theme_destroy. The app don't need to manage this resource. Signed-off-by: Tran Ba Khang(MS/EMC31-XC) <Khang.TranBa@vn.bosch.com>
-rw-r--r--ivi-layermanagement-examples/EGLWLInputEventExample/src/WLContext.cpp16
1 files changed, 7 insertions, 9 deletions
diff --git a/ivi-layermanagement-examples/EGLWLInputEventExample/src/WLContext.cpp b/ivi-layermanagement-examples/EGLWLInputEventExample/src/WLContext.cpp
index dedb5a8..edcbaff 100644
--- a/ivi-layermanagement-examples/EGLWLInputEventExample/src/WLContext.cpp
+++ b/ivi-layermanagement-examples/EGLWLInputEventExample/src/WLContext.cpp
@@ -85,7 +85,6 @@ create_cursors(WLContext* wlContext)
fprintf(stderr, "could not load default theme\n");
return;
}
- wlContext->SetWLCursor((wl_cursor*) malloc(sizeof(wl_cursor)));
for (j = 0; !cursor && j < ARRAY_SIZE(left_ptrs); ++j)
cursor = wl_cursor_theme_get_cursor(wlContext->GetWLCursorTheme(),
@@ -171,11 +170,10 @@ WLContext::SeatHandleCapabilities(void* data, struct wl_seat* seat, uint32_t cap
context->ctx->SetPointerSurface(NULL);
}
- if (context->ctx->GetWLCursorTheme())
+ if (context->ctx->GetWLCursorTheme()){
wl_cursor_theme_destroy(context->ctx->GetWLCursorTheme());
-
- if (context->ctx->GetWLCursor())
- free(context->ctx->GetWLCursor());
+ context->ctx->SetWLCursor(NULL);
+ }
}
if ((caps & WL_SEAT_CAPABILITY_KEYBOARD) && !context->wlKeyboard){
@@ -236,11 +234,11 @@ WLContext::DestroyWLContext()
m_pointerSurface = NULL;
}
- if (m_wlCursorTheme)
+ if (m_wlCursorTheme){
wl_cursor_theme_destroy(m_wlCursorTheme);
-
- if (m_wlCursor)
- free(m_wlCursor);
+ m_wlCursorTheme = NULL;
+ m_wlCursor = NULL;
+ }
wl_registry_destroy(m_wlRegistry);
wl_display_flush(m_wlDisplay);