* fix(fs): don't allocate lv_fs_file_t in lv_fs_open
avoid the unnecessary allocation
* fix(fs): apply the similar file open/close change to dir open/close
avoid the unnecessary allocation
commit 06917a6ec3bfdf12b19aede3e6df06e66d681ed7
* fix(image decoder): fix memory leak when no decoder can be used
and handle the out of memory gracefully
* fix(image decoder): zero the output fields after each iteration
to clean the stale info saved by try failed decoder and remove img_data
zero from lv_img_decoder_built_in_open since it has be done in the loop
Co-authored-by: Gabor Kiss-Vamosi <kisvegabor@gmail.com>
* fix(gc): remove the unused variables from gc
* fix(gc): correct typo(from _lv_img_defoder_ll to _lv_img_decoder_ll)
* fix(gc): change _lv_drv_ll to _lv_fsdrv_ll
since only instances fo lv_fs_drv_t can be added to this list
* fix(gc): Iterate the root variables only when they are really used
to save the memory space
* fix(image cache): move cache_temp to gc.h
and rename it to _lv_img_cache_single
* fix(mem): reutrn NULL in lv_mem_buf_get if allocation fail
* fix(mem): refine the loop in alloc_core to simplify the logic
* fix(mem): remove the lv_mem_buf declaration from lv_mem.h
since it already declared in gc.h
* fix(timer): remove LV_GC_INCLUDE inclusion since it doesn't need anymore
please see commit d6ca15a74923f2e86ce1e4ee6ee83bb2bbc887b8 for more info
* fix(timer): implement lv_timer_create directly
and call it in lv_timer_create_basic
* fix(timer): exclude the return value computing from the idle time
and change handler_start and time_till_next to local variables
* fix(timer): restart the timer process loop correctly
* fix(timer): skip the count pause timer into next timeout
it's wrong to check repeat_count since the timer is always
removed from the list once the repeat_count change to zero
* fix(timer): remove zero task_deleted and task_created in lv_task_exec
since the loop in lv_task_handler already do the same thing