From: Seunghun Lee Date: Mon, 6 Nov 2023 00:49:15 +0000 (+0900) Subject: tbm_server: Reference/unreference tbm_surface X-Git-Tag: accepted/tizen/unified/20231110.172201~3 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=31eb60fd2eabb05576c225ed6b342854abada56d;p=platform%2Fcore%2Fuifw%2Flibds-tizen.git tbm_server: Reference/unreference tbm_surface This is to prevent tbm_surface from being destroyed while ds_buffer is alive. Change-Id: Iaab843d721d01b82a774094d91f03629e0a98fa4 --- diff --git a/src/tbm_server/tbm_server.c b/src/tbm_server/tbm_server.c index 693f8a9..0001d9f 100644 --- a/src/tbm_server/tbm_server.c +++ b/src/tbm_server/tbm_server.c @@ -110,7 +110,10 @@ tbm_client_buffer_handle_resource_destroy(struct wl_listener *listener, buffer = wl_container_of(listener, buffer, resource_destroy); buffer->resource = NULL; + + tbm_surface_internal_unref(buffer->surface); buffer->surface = NULL; + wl_list_remove(&buffer->resource_destroy.link); wl_list_init(&buffer->resource_destroy.link); @@ -220,6 +223,7 @@ tbm_client_buffer_create(struct wl_resource *resource) ds_buffer_init(&buffer->base, &tbm_client_buffer_iface, width, height); buffer->resource = resource; + tbm_surface_internal_ref(surface); buffer->surface = surface; buffer->format = tbm_surface_get_format(surface); diff --git a/src/tbm_server/tbm_server.h b/src/tbm_server/tbm_server.h index 3ae00f3..c045496 100644 --- a/src/tbm_server/tbm_server.h +++ b/src/tbm_server/tbm_server.h @@ -4,6 +4,7 @@ #include #include #include +#include #include #include