mirror of
https://github.com/lvgl/lvgl.git
synced 2026-08-18 11:42:15 +08:00
perf(array): make short functions inline to reduce function jumps (#7890)
Signed-off-by: pengyiqiang <pengyiqiang@xiaomi.com> Co-authored-by: pengyiqiang <pengyiqiang@xiaomi.com>
This commit is contained in:
@@ -212,41 +212,6 @@ lv_result_t lv_array_assign(lv_array_t * array, uint32_t index, const void * val
|
||||
return LV_RESULT_OK;
|
||||
}
|
||||
|
||||
uint32_t lv_array_size(const lv_array_t * array)
|
||||
{
|
||||
return array->size;
|
||||
}
|
||||
|
||||
uint32_t lv_array_capacity(const lv_array_t * array)
|
||||
{
|
||||
return array->capacity;
|
||||
}
|
||||
|
||||
bool lv_array_is_empty(const lv_array_t * array)
|
||||
{
|
||||
return array->size == 0;
|
||||
}
|
||||
|
||||
bool lv_array_is_full(const lv_array_t * array)
|
||||
{
|
||||
return array->size == array->capacity;
|
||||
}
|
||||
|
||||
void lv_array_clear(lv_array_t * array)
|
||||
{
|
||||
array->size = 0;
|
||||
}
|
||||
|
||||
void * lv_array_front(const lv_array_t * array)
|
||||
{
|
||||
return lv_array_at(array, 0);
|
||||
}
|
||||
|
||||
void * lv_array_back(const lv_array_t * array)
|
||||
{
|
||||
return lv_array_at(array, lv_array_size(array) - 1);
|
||||
}
|
||||
|
||||
/**********************
|
||||
* STATIC FUNCTIONS
|
||||
**********************/
|
||||
|
||||
+28
-7
@@ -83,28 +83,40 @@ void lv_array_deinit(lv_array_t * array);
|
||||
* @param array pointer to an `lv_array_t` variable
|
||||
* @return the number of elements stored in the array
|
||||
*/
|
||||
uint32_t lv_array_size(const lv_array_t * array);
|
||||
static inline uint32_t lv_array_size(const lv_array_t * array)
|
||||
{
|
||||
return array->size;
|
||||
}
|
||||
|
||||
/**
|
||||
* Return the capacity of the array, i.e. how many elements can be stored.
|
||||
* @param array pointer to an `lv_array_t` variable
|
||||
* @return the capacity of the array
|
||||
*/
|
||||
uint32_t lv_array_capacity(const lv_array_t * array);
|
||||
static inline uint32_t lv_array_capacity(const lv_array_t * array)
|
||||
{
|
||||
return array->capacity;
|
||||
}
|
||||
|
||||
/**
|
||||
* Return if the array is empty
|
||||
* @param array pointer to an `lv_array_t` variable
|
||||
* @return true: array is empty; false: array is not empty
|
||||
*/
|
||||
bool lv_array_is_empty(const lv_array_t * array);
|
||||
static inline bool lv_array_is_empty(const lv_array_t * array)
|
||||
{
|
||||
return array->size == 0;
|
||||
}
|
||||
|
||||
/**
|
||||
* Return if the array is full
|
||||
* @param array pointer to an `lv_array_t` variable
|
||||
* @return true: array is full; false: array is not full
|
||||
*/
|
||||
bool lv_array_is_full(const lv_array_t * array);
|
||||
static inline bool lv_array_is_full(const lv_array_t * array)
|
||||
{
|
||||
return array->size == array->capacity;
|
||||
}
|
||||
|
||||
/**
|
||||
* Copy an array to another.
|
||||
@@ -118,7 +130,10 @@ void lv_array_copy(lv_array_t * target, const lv_array_t * source);
|
||||
* Remove all elements in array.
|
||||
* @param array pointer to an `lv_array_t` variable
|
||||
*/
|
||||
void lv_array_clear(lv_array_t * array);
|
||||
static inline void lv_array_clear(lv_array_t * array)
|
||||
{
|
||||
array->size = 0;
|
||||
}
|
||||
|
||||
/**
|
||||
* Shrink the memory capacity of array if necessary.
|
||||
@@ -186,13 +201,19 @@ void * lv_array_at(const lv_array_t * array, uint32_t index);
|
||||
* @param array pointer to an `lv_array_t` variable
|
||||
* @return a pointer to the first element in the array
|
||||
*/
|
||||
void * lv_array_front(const lv_array_t * array);
|
||||
static inline void * lv_array_front(const lv_array_t * array)
|
||||
{
|
||||
return lv_array_at(array, 0);
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns a pointer to the last element in the array.
|
||||
* @param array pointer to an `lv_array_t` variable
|
||||
*/
|
||||
void * lv_array_back(const lv_array_t * array);
|
||||
static inline void * lv_array_back(const lv_array_t * array)
|
||||
{
|
||||
return lv_array_at(array, lv_array_size(array) - 1);
|
||||
}
|
||||
|
||||
/**********************
|
||||
* MACROS
|
||||
|
||||
Reference in New Issue
Block a user