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:
parent
caf18564ba
commit
893dfb14c9
@ -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);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -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);
|
||||||
}
|
}
|
||||||
|
@ -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,
|
||||||
|
@ -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)
|
||||||
|
@ -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)
|
||||||
|
@ -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)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user