From 34d5f2b93493fd42fa0cf3b3602bda194ed0bcd1 Mon Sep 17 00:00:00 2001 From: "terry.rong" Date: Tue, 21 May 2024 10:01:48 +0800 Subject: [PATCH] fix(snapshot): fix memleak in lv_snapshot (#6147) Signed-off-by: rongyichang --- src/others/snapshot/lv_snapshot.c | 2 +- tests/ref_imgs/snapshot_2.png | Bin 0 -> 13385 bytes tests/src/test_cases/test_snapshot.c | 73 ++++++++++++++++++++++++++- 3 files changed, 73 insertions(+), 2 deletions(-) create mode 100644 tests/ref_imgs/snapshot_2.png diff --git a/src/others/snapshot/lv_snapshot.c b/src/others/snapshot/lv_snapshot.c index e467cf4b5..28fca5b65 100644 --- a/src/others/snapshot/lv_snapshot.c +++ b/src/others/snapshot/lv_snapshot.c @@ -121,7 +121,7 @@ lv_result_t lv_snapshot_take_to_draw_buf(lv_obj_t * obj, lv_color_format_t cf, l while(layer.draw_task_head) { lv_draw_dispatch_wait_for_request(); - lv_draw_dispatch_layer(NULL, &layer); + lv_draw_dispatch(); } disp_new->layer_head = layer_old; diff --git a/tests/ref_imgs/snapshot_2.png b/tests/ref_imgs/snapshot_2.png new file mode 100644 index 0000000000000000000000000000000000000000..0de0a98c7a9ad83f10973c7099254578d173217a GIT binary patch literal 13385 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 Txh%_$4xjV?s+~