mirror of
https://github.com/espressif/esp-idf.git
synced 2024-10-05 20:47:46 -04:00
esp_log: Refactor esp_log_level_get() into a common static function
Removes duplicate code for a small runtime & size overhead if esp_log_level_get() is not called in the firmware. Follow-up to https://github.com/espressif/esp-idf/pull/6573
This commit is contained in:
parent
fc85f8a47d
commit
6c44fe291c
@ -141,9 +141,13 @@ void esp_log_level_set(const char *tag, esp_log_level_t level)
|
||||
esp_log_impl_unlock();
|
||||
}
|
||||
|
||||
esp_log_level_t esp_log_level_get(const char* tag)
|
||||
|
||||
/* Common code for getting the log level from cache, esp_log_impl_lock()
|
||||
should be called before calling this function. The function unlocks,
|
||||
as indicated in the name.
|
||||
*/
|
||||
static esp_log_level_t s_log_level_get_and_unlock(const char *tag)
|
||||
{
|
||||
esp_log_impl_lock();
|
||||
esp_log_level_t level_for_tag;
|
||||
// Look for the tag in cache first, then in the linked list of all tags
|
||||
if (!get_cached_log_level(tag, &level_for_tag)) {
|
||||
@ -160,6 +164,12 @@ esp_log_level_t esp_log_level_get(const char* tag)
|
||||
return level_for_tag;
|
||||
}
|
||||
|
||||
esp_log_level_t esp_log_level_get(const char *tag)
|
||||
{
|
||||
esp_log_impl_lock();
|
||||
return s_log_level_get_and_unlock(tag);
|
||||
}
|
||||
|
||||
void clear_log_level_list(void)
|
||||
{
|
||||
uncached_tag_entry_t *it;
|
||||
@ -182,18 +192,7 @@ void esp_log_writev(esp_log_level_t level,
|
||||
if (!esp_log_impl_lock_timeout()) {
|
||||
return;
|
||||
}
|
||||
esp_log_level_t level_for_tag;
|
||||
// Look for the tag in cache first, then in the linked list of all tags
|
||||
if (!get_cached_log_level(tag, &level_for_tag)) {
|
||||
if (!get_uncached_log_level(tag, &level_for_tag)) {
|
||||
level_for_tag = esp_log_default_level;
|
||||
}
|
||||
add_to_cache(tag, level_for_tag);
|
||||
#ifdef LOG_BUILTIN_CHECKS
|
||||
++s_log_cache_misses;
|
||||
#endif
|
||||
}
|
||||
esp_log_impl_unlock();
|
||||
esp_log_level_t level_for_tag = s_log_level_get_and_unlock(tag);
|
||||
if (!should_output(level, level_for_tag)) {
|
||||
return;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user