display: unref display buffer when deinit backend 78/204178/1
authorChangyeon Lee <cyeon.lee@samsung.com>
Mon, 22 Apr 2019 04:23:12 +0000 (13:23 +0900)
committerChangyeon Lee <cyeon.lee@samsung.com>
Mon, 22 Apr 2019 04:23:12 +0000 (13:23 +0900)
Change-Id: I180e208c0d8c3a7060456c14e7465c0b1c55dd61

src/tdm_vc4.c
src/tdm_vc4_display.c

index a1ff1af..eb100d4 100644 (file)
@@ -215,9 +215,8 @@ tdm_vc4_deinit(tdm_backend_data *bdata)
        _tdm_vc4_udev_deinit(vc4_data);
 #endif
 
-       tdm_vc4_data_destroy_buffer_list(vc4_data);
-
        tdm_vc4_display_destroy_output_list(vc4_data);
+       tdm_vc4_data_destroy_buffer_list(vc4_data);
 
        if (vc4_data->plane_res)
                drmModeFreePlaneResources(vc4_data->plane_res);
index de54a86..c91fdbe 100644 (file)
@@ -906,6 +906,8 @@ tdm_vc4_display_destroy_output_list(tdm_vc4_data *vc4_data)
                        tdm_vc4_layer_data *l = NULL, *ll = NULL;
                        LIST_FOR_EACH_ENTRY_SAFE(l, ll, &o->layer_list, link) {
                                LIST_DEL(&l->link);
+                               if (l->display_buffer)
+                                       tbm_surface_internal_unref(l->display_buffer->buffer);
                                free(l);
                        }
                }