Dozingfiretruck hai 8 meses
pai
achega
23cde45e6f

+ 1 - 0
components/lvgl8/src/draw/sw/lv_draw_sw_letter.c

@@ -186,6 +186,7 @@ static void LV_ATTRIBUTE_FAST_MEM draw_letter_normal(lv_draw_ctx_t * draw_ctx, c
         img_dsc.zoom = LV_IMG_ZOOM_NONE;
         img_dsc.opa = dsc->opa;
         img_dsc.blend_mode = dsc->blend_mode;
+        lv_img_cache_invalidate_src(map_p);
         lv_draw_img(draw_ctx, &img_dsc, &fill_area, map_p);
         return;
     }

+ 1 - 1
components/lvgl8/src/draw/swm341_dma2d/lv_gpu_swm341_dma2d.c

@@ -204,7 +204,7 @@ static void lv_draw_swm341_dma2d_blend_map(lv_color_t * dest_buf, const lv_area_
         DMA2D->L[DMA2D_LAYER_FG].OR = src_stride - dest_w;
         DMA2D->L[DMA2D_LAYER_FG].PFCCR = (LV_DMA2D_COLOR_FORMAT << DMA2D_PFCCR_CFMT_Pos)
                                          /*alpha mode 2, replace with foreground * alpha value*/
-                                         | (2 << DAM2D_PFCCR_AMODE_Pos)
+                                         | (2 << DMA2D_PFCCR_AMODE_Pos)
                                          /*alpha value*/
                                          | (opa << DMA2D_PFCCR_ALPHA_Pos);
 

+ 7 - 2
components/lvgl8/src/extra/libs/png/lv_png.c

@@ -16,6 +16,11 @@
 /*********************
  *      DEFINES
  *********************/
+#ifdef LODEPNG_COMPILE_ALLOCATORS
+    #define lv_png_free(ptr) lv_mem_free((ptr))
+#else
+    #define lv_png_free(ptr) lodepng_free((ptr))
+#endif
 
 /**********************
  *      TYPEDEFS
@@ -172,10 +177,10 @@ static lv_res_t decoder_open(lv_img_decoder_t * decoder, lv_img_decoder_dsc_t *
 
             /*Decode the loaded image in ARGB8888 */
             error = lodepng_decode32(&img_data, &png_width, &png_height, png_data, png_data_size);
-            lv_mem_free(png_data); /*Free the loaded file*/
+            lv_png_free(png_data); /*Free the loaded file*/
             if(error) {
                 if(img_data != NULL) {
-                    lv_mem_free(img_data);
+                    lv_png_free(img_data);
                 }
                 LV_LOG_WARN("error %" LV_PRIu32 ": %s\n", error, lodepng_error_text(error));
                 return LV_RES_INV;

+ 17 - 4
components/lvgl8/src/extra/libs/sjpg/lv_sjpg.c

@@ -872,6 +872,7 @@ static void decoder_close(lv_img_decoder_t * decoder, lv_img_decoder_dsc_t * dsc
                 lv_fs_close(&(sjpeg->io.lv_file));
             }
             lv_sjpg_cleanup(sjpeg);
+            dsc->user_data = NULL;
             break;
 
         case LV_IMG_SRC_VARIABLE:
@@ -892,11 +893,23 @@ static int is_jpg(const uint8_t * raw_data, size_t len)
 
 static void lv_sjpg_free(SJPEG * sjpeg)
 {
-    if(sjpeg->frame_cache) lv_mem_free(sjpeg->frame_cache);
+    if(sjpeg->frame_cache) {
+        lv_mem_free(sjpeg->frame_cache);
+        sjpeg->frame_cache = NULL;
+    }
     if(sjpeg->frame_base_array) lv_mem_free(sjpeg->frame_base_array);
-    if(sjpeg->frame_base_offset) lv_mem_free(sjpeg->frame_base_offset);
-    if(sjpeg->tjpeg_jd) lv_mem_free(sjpeg->tjpeg_jd);
-    if(sjpeg->workb) lv_mem_free(sjpeg->workb);
+    if(sjpeg->frame_base_offset) {
+        lv_mem_free(sjpeg->frame_base_offset);
+        sjpeg->frame_base_offset = NULL;
+    }
+    if(sjpeg->tjpeg_jd) {
+        lv_mem_free(sjpeg->tjpeg_jd);
+        sjpeg->tjpeg_jd = NULL;
+    }
+    if(sjpeg->workb) {
+        lv_mem_free(sjpeg->workb);
+        sjpeg->workb = NULL;
+    }
 }
 
 static void lv_sjpg_cleanup(SJPEG * sjpeg)

+ 1 - 1
components/lvgl8/src/extra/widgets/span/lv_span.c

@@ -609,7 +609,7 @@ static bool lv_txt_get_snippet(const char * txt, const lv_font_t * font,
     uint32_t ofs = _lv_txt_get_next_line(txt, font, letter_space, max_width, use_width, flag);
     *end_ofs = ofs;
 
-    if(txt[ofs] == '\0' && *use_width < max_width) {
+    if(txt[ofs] == '\0' && *use_width < max_width && !(ofs && (txt[ofs - 1] == '\n' || txt[ofs - 1] == '\r'))) {
         return false;
     }
     else {