arch(conf, api) refactor lv_conf and some API (#3501)

Kconfig and MicroPython config is not updated yet.


* start to refactor lv_conf.h

* further mem refactoring

* create lv_mem_builtin.c/h

* update lv_conf_internal.h

* add lv_strlen and lv_strncpy

* rename LV_DRAW_COMPLEX to LV_USE_DRAW_MASK

* update lv_conf_template

* minor fix
This commit is contained in:
Gabor Kiss-Vamosi
2022-07-19 13:31:42 +02:00
committed by GitHub
parent c03d817192
commit 5369d7d473
148 changed files with 1889 additions and 2035 deletions

View File

@@ -74,8 +74,8 @@ lv_lru_t * lv_lru_create(size_t cache_size, size_t average_length, lv_lru_free_t
lv_lru_free_t * key_free)
{
// create the cache
lv_lru_t * cache = (lv_lru_t *) lv_mem_alloc(sizeof(lv_lru_t));
lv_memset_00(cache, sizeof(lv_lru_t));
lv_lru_t * cache = (lv_lru_t *) lv_malloc(sizeof(lv_lru_t));
lv_memzero(cache, sizeof(lv_lru_t));
if(!cache) {
LV_LOG_WARN("LRU Cache unable to create cache object");
return NULL;
@@ -85,15 +85,15 @@ lv_lru_t * lv_lru_create(size_t cache_size, size_t average_length, lv_lru_free_t
cache->free_memory = cache_size;
cache->total_memory = cache_size;
cache->seed = lv_rand(1, UINT32_MAX);
cache->value_free = value_free ? value_free : lv_mem_free;
cache->key_free = key_free ? key_free : lv_mem_free;
cache->value_free = value_free ? value_free : lv_free;
cache->key_free = key_free ? key_free : lv_free;
// size the hash table to a guestimate of the number of slots required (assuming a perfect hash)
cache->items = (lv_lru_item_t **) lv_mem_alloc(sizeof(lv_lru_item_t *) * cache->hash_table_size);
lv_memset_00(cache->items, sizeof(lv_lru_item_t *) * cache->hash_table_size);
cache->items = (lv_lru_item_t **) lv_malloc(sizeof(lv_lru_item_t *) * cache->hash_table_size);
lv_memzero(cache->items, sizeof(lv_lru_item_t *) * cache->hash_table_size);
if(!cache->items) {
LV_LOG_WARN("LRU Cache unable to create cache hash table");
lv_mem_free(cache);
lv_free(cache);
return NULL;
}
return cache;
@@ -115,24 +115,24 @@ void lv_lru_del(lv_lru_t * cache)
cache->value_free(item->value);
cache->key_free(item->key);
cache->free_memory += item->value_length;
lv_mem_free(item);
lv_free(item);
item = next;
}
}
lv_mem_free(cache->items);
lv_free(cache->items);
}
if(cache->free_items) {
item = cache->free_items;
while(item) {
next = (lv_lru_item_t *) item->next;
lv_mem_free(item);
lv_free(item);
item = next;
}
}
// free the cache
lv_mem_free(cache);
lv_free(cache);
}
@@ -166,7 +166,7 @@ lv_lru_res_t lv_lru_set(lv_lru_t * cache, const void * key, size_t key_length, v
// insert a new item
item = lv_lru_pop_or_create_item(cache);
item->value = value;
item->key = lv_mem_alloc(key_length);
item->key = lv_malloc(key_length);
memcpy(item->key, key, key_length);
item->value_length = value_length;
item->key_length = key_length;
@@ -326,7 +326,7 @@ static void lv_lru_remove_item(lv_lru_t * cache, lv_lru_item_t * prev, lv_lru_it
cache->key_free(item->key);
// push the item to the free items queue
lv_memset_00(item, sizeof(lv_lru_item_t));
lv_memzero(item, sizeof(lv_lru_item_t));
item->next = cache->free_items;
cache->free_items = item;
}
@@ -338,11 +338,11 @@ static lv_lru_item_t * lv_lru_pop_or_create_item(lv_lru_t * cache)
if(cache->free_items) {
item = cache->free_items;
cache->free_items = item->next;
lv_memset_00(item, sizeof(lv_lru_item_t));
lv_memzero(item, sizeof(lv_lru_item_t));
}
else {
item = (lv_lru_item_t *) lv_mem_alloc(sizeof(lv_lru_item_t));
lv_memset_00(item, sizeof(lv_lru_item_t));
item = (lv_lru_item_t *) lv_malloc(sizeof(lv_lru_item_t));
lv_memzero(item, sizeof(lv_lru_item_t));
}
return item;