From 7aa7fbbbe831ca0a19b4b4905eda94c87041d708 Mon Sep 17 00:00:00 2001 From: fvanroie Date: Tue, 25 Oct 2022 23:39:47 +0200 Subject: [PATCH] Only release old img_src if a new img_src is about to be set --- src/hasp/hasp_attribute.cpp | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/hasp/hasp_attribute.cpp b/src/hasp/hasp_attribute.cpp index 8363190b..7852a030 100644 --- a/src/hasp/hasp_attribute.cpp +++ b/src/hasp/hasp_attribute.cpp @@ -1302,22 +1302,24 @@ static hasp_attribute_type_t special_attribute_src(lv_obj_t* obj, const char* pa if(!obj_check_type(obj, LV_HASP_IMAGE)) return HASP_ATTR_TYPE_NOT_FOUND; if(update) { - my_image_release_resources(obj); if(payload != strstr_P(payload, PSTR("http://")) && // not start with http payload != strstr_P(payload, PSTR("https://"))) { // not start with https if(payload == strstr_P(payload, PSTR("L:"))) { // startsWith command/ + my_image_release_resources(obj); lv_img_set_src(obj, payload); } else if(payload == strstr_P(payload, PSTR("/littlefs/"))) { // startsWith command/ char tempsrc[64] = "L:"; strncpy(tempsrc + 2, payload + 10, sizeof(tempsrc) - 2); + my_image_release_resources(obj); lv_img_set_src(obj, tempsrc); } else { char tempsrc[64] = LV_SYMBOL_DUMMY; strncpy(tempsrc + 3, payload, sizeof(tempsrc) - 3); + my_image_release_resources(obj); lv_img_set_src(obj, tempsrc); } @@ -1458,6 +1460,7 @@ static hasp_attribute_type_t special_attribute_src(lv_obj_t* obj, const char* pa img_dsc->header.h, img_dsc->header.cf, img_dsc->data_size); } + my_image_release_resources(obj); lv_img_set_src(obj, img_dsc); // LOG_DEBUG(TAG_ATTR, "%s %d %x -> %x", __FILE__, __LINE__, img_buf_start, img_buf_start_pos);