Skip to content

Commit d3d2c07

Browse files
committed
Merge branch 'bugfix/log_invalid_comparison' into 'master'
log: fix preprocessor comparison against an enum value See merge request idf/esp-idf!1865
2 parents 58f0edf + 527be44 commit d3d2c07

File tree

1 file changed

+30
-14
lines changed

1 file changed

+30
-14
lines changed

components/log/include/esp_log.h

Lines changed: 30 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -120,8 +120,12 @@ void esp_log_write(esp_log_level_t level, const char* tag, const char* format, .
120120
* @param level level of the log
121121
*
122122
*/
123-
#define ESP_LOG_BUFFER_HEX_LEVEL( tag, buffer, buff_len, level ) do {\
124-
if ( LOG_LOCAL_LEVEL >= level ) esp_log_buffer_hex_internal( tag, buffer, buff_len, level ); } while(0)
123+
#define ESP_LOG_BUFFER_HEX_LEVEL( tag, buffer, buff_len, level ) \
124+
do {\
125+
if ( LOG_LOCAL_LEVEL >= (level) ) { \
126+
esp_log_buffer_hex_internal( tag, buffer, buff_len, level ); \
127+
} \
128+
} while(0)
125129

126130
/**
127131
* @brief Log a buffer of characters at specified level, separated into 16 bytes each line. Buffer should contain only printable characters.
@@ -135,8 +139,12 @@ void esp_log_write(esp_log_level_t level, const char* tag, const char* format, .
135139
* @param level level of the log
136140
*
137141
*/
138-
#define ESP_LOG_BUFFER_CHAR_LEVEL( tag, buffer, buff_len, level ) do {\
139-
if ( LOG_LOCAL_LEVEL >= level ) esp_log_buffer_char_internal( tag, buffer, buff_len, level ); } while(0)
142+
#define ESP_LOG_BUFFER_CHAR_LEVEL( tag, buffer, buff_len, level ) \
143+
do {\
144+
if ( LOG_LOCAL_LEVEL >= (level) ) { \
145+
esp_log_buffer_char_internal( tag, buffer, buff_len, level ); \
146+
} \
147+
} while(0)
140148

141149
/**
142150
* @brief Dump a buffer to the log at specified level.
@@ -157,11 +165,13 @@ void esp_log_write(esp_log_level_t level, const char* tag, const char* format, .
157165
*
158166
* @param level level of the log
159167
*/
160-
#define ESP_LOG_BUFFER_HEXDUMP( tag, buffer, buff_len, level ) do {\
161-
if ( LOG_LOCAL_LEVEL >= level ) esp_log_buffer_hexdump_internal( tag, buffer, buff_len, level); } while(0)
168+
#define ESP_LOG_BUFFER_HEXDUMP( tag, buffer, buff_len, level ) \
169+
do { \
170+
if ( LOG_LOCAL_LEVEL >= (level) ) { \
171+
esp_log_buffer_hexdump_internal( tag, buffer, buff_len, level); \
172+
} \
173+
} while(0)
162174

163-
164-
#if (LOG_LOCAL_LEVEL >= ESP_LOG_INFO)
165175
/**
166176
* @brief Log a buffer of hex bytes at Info level
167177
*
@@ -174,7 +184,12 @@ void esp_log_write(esp_log_level_t level, const char* tag, const char* format, .
174184
* @see ``esp_log_buffer_hex_level``
175185
*
176186
*/
177-
#define ESP_LOG_BUFFER_HEX(tag, buffer, buff_len) ESP_LOG_BUFFER_HEX_LEVEL( tag, buffer, buff_len, ESP_LOG_INFO )
187+
#define ESP_LOG_BUFFER_HEX(tag, buffer, buff_len) \
188+
do { \
189+
if (LOG_LOCAL_LEVEL > ESP_LOG_INFO) { \
190+
ESP_LOG_BUFFER_HEX_LEVEL( tag, buffer, buff_len, ESP_LOG_INFO ); \
191+
}\
192+
} while(0)
178193

179194
/**
180195
* @brief Log a buffer of characters at Info level. Buffer should contain only printable characters.
@@ -188,12 +203,13 @@ void esp_log_write(esp_log_level_t level, const char* tag, const char* format, .
188203
* @see ``esp_log_buffer_char_level``
189204
*
190205
*/
191-
#define ESP_LOG_BUFFER_CHAR(tag, buffer, buff_len) ESP_LOG_BUFFER_CHAR_LEVEL( tag, buffer, buff_len, ESP_LOG_INFO )
206+
#define ESP_LOG_BUFFER_CHAR(tag, buffer, buff_len) \
207+
do { \
208+
if (LOG_LOCAL_LEVEL > ESP_LOG_INFO) { \
209+
ESP_LOG_BUFFER_CHAR_LEVEL( tag, buffer, buff_len, ESP_LOG_INFO ); \
210+
}\
211+
} while(0)
192212

193-
#else
194-
#define ESP_LOG_BUFFER_HEX(tag, buffer, buff_len) {}
195-
#define ESP_LOG_BUFFER_CHAR(tag, buffer, buff_len) {}
196-
#endif
197213

198214
//to be back compatible
199215
#define esp_log_buffer_hex ESP_LOG_BUFFER_HEX

0 commit comments

Comments
 (0)