1
0
mirror of https://github.com/lvgl/lvgl.git synced 2025-01-28 07:03:00 +08:00

refactor(image_decoder): extract cache operation to image decoder from decoder instance (#6155)

This commit is contained in:
Benign X 2024-05-16 18:11:37 +08:00 committed by GitHub
parent caf18564ba
commit 893dfb14c9
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
6 changed files with 9 additions and 22 deletions

View File

@ -151,6 +151,11 @@ void lv_image_decoder_close(lv_image_decoder_dsc_t * dsc)
{ {
if(dsc->decoder) { if(dsc->decoder) {
if(dsc->decoder->close_cb) dsc->decoder->close_cb(dsc->decoder, dsc); if(dsc->decoder->close_cb) dsc->decoder->close_cb(dsc->decoder, dsc);
if(lv_image_cache_is_enabled() && dsc->cache && dsc->cache_entry) {
/*Decoded data is in cache, release it from cache's callback*/
lv_cache_release(dsc->cache, dsc->cache_entry, NULL);
}
} }
} }

View File

@ -417,10 +417,7 @@ static void decoder_close(lv_image_decoder_t * decoder, lv_image_decoder_dsc_t *
{ {
LV_UNUSED(decoder); /*Unused*/ LV_UNUSED(decoder); /*Unused*/
if(dsc->args.no_cache || !lv_image_cache_is_enabled()) if(dsc->args.no_cache || !lv_image_cache_is_enabled()) decoder_draw_buf_free((lv_draw_buf_t *)dsc->decoded);
decoder_draw_buf_free((lv_draw_buf_t *)dsc->decoded);
else
lv_cache_release(dsc->cache, dsc->cache_entry, NULL);
if(decoder->user_data) free(decoder->user_data); if(decoder->user_data) free(decoder->user_data);
} }

View File

@ -365,12 +365,6 @@ void lv_bin_decoder_close(lv_image_decoder_t * decoder, lv_image_decoder_dsc_t *
} }
free_decoder_data(dsc); free_decoder_data(dsc);
if(dsc->cache && dsc->cache_entry) {
/*Decoded data is in cache, release it from cache's callback*/
lv_cache_release(dsc->cache, dsc->cache_entry, NULL);
}
} }
lv_result_t lv_bin_decoder_get_area(lv_image_decoder_t * decoder, lv_image_decoder_dsc_t * dsc, lv_result_t lv_bin_decoder_get_area(lv_image_decoder_t * decoder, lv_image_decoder_dsc_t * dsc,

View File

@ -209,10 +209,7 @@ static void decoder_close(lv_image_decoder_t * decoder, lv_image_decoder_dsc_t *
{ {
LV_UNUSED(decoder); /*Unused*/ LV_UNUSED(decoder); /*Unused*/
if(dsc->args.no_cache || !lv_image_cache_is_enabled()) if(dsc->args.no_cache || !lv_image_cache_is_enabled()) lv_draw_buf_destroy((lv_draw_buf_t *)dsc->decoded);
lv_draw_buf_destroy((lv_draw_buf_t *)dsc->decoded);
else
lv_cache_release(dsc->cache, dsc->cache_entry, NULL);
} }
static uint8_t * read_file(const char * filename, uint32_t * size) static uint8_t * read_file(const char * filename, uint32_t * size)

View File

@ -183,10 +183,7 @@ static void decoder_close(lv_image_decoder_t * decoder, lv_image_decoder_dsc_t *
{ {
LV_UNUSED(decoder); /*Unused*/ LV_UNUSED(decoder); /*Unused*/
if(dsc->args.no_cache || !lv_image_cache_is_enabled()) if(dsc->args.no_cache || !lv_image_cache_is_enabled()) lv_draw_buf_destroy((lv_draw_buf_t *)dsc->decoded);
lv_draw_buf_destroy((lv_draw_buf_t *)dsc->decoded);
else
lv_cache_release(dsc->cache, dsc->cache_entry, NULL);
} }
static uint8_t * alloc_file(const char * filename, uint32_t * size) static uint8_t * alloc_file(const char * filename, uint32_t * size)

View File

@ -234,10 +234,7 @@ static void decoder_close(lv_image_decoder_t * decoder, lv_image_decoder_dsc_t *
{ {
LV_UNUSED(decoder); LV_UNUSED(decoder);
if(dsc->args.no_cache || !lv_image_cache_is_enabled()) if(dsc->args.no_cache || !lv_image_cache_is_enabled()) lv_draw_buf_destroy((lv_draw_buf_t *)dsc->decoded);
lv_draw_buf_destroy((lv_draw_buf_t *)dsc->decoded);
else
lv_cache_release(dsc->cache, dsc->cache_entry, NULL);
} }
static lv_draw_buf_t * decode_png_data(const void * png_data, size_t png_data_size) static lv_draw_buf_t * decode_png_data(const void * png_data, size_t png_data_size)