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:
committed by
GitHub
parent
c03d817192
commit
5369d7d473
@@ -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;
|
||||
|
||||
Reference in New Issue
Block a user