fix(log): 修复默认日志实例命名冲突并优化宏定义

将 `logger_root` 重命名为 `__default_logger_root` 以避免潜在的符号冲突,
同时简化日志宏定义逻辑,提升代码可读性与维护性。此外,为防止 clang-format
格式化影响日志宏的排版,添加了 clang-format 开关注释。

refactor(memory): 优化 memcmp 函数中的 switch-case 结构

在 `smcc_memcmp` 函数中为每个 case 添加 `/* fall through */` 注释,
明确表示故意穿透到下一个 case,提高代码意图的清晰度,并增强静态分析工具的兼容性。
This commit is contained in:
zzy
2025-11-22 16:59:28 +08:00
parent 63f6f13883
commit fa5611dabd
3 changed files with 38 additions and 38 deletions

View File

@@ -222,81 +222,97 @@ int smcc_memcmp(const void *s1, const void *s2, usize n) {
i = 15; i = 15;
break; break;
} }
/* fall through */
case 15: case 15:
if (p1[14] != p2[14]) { if (p1[14] != p2[14]) {
i = 14; i = 14;
break; break;
} }
/* fall through */
case 14: case 14:
if (p1[13] != p2[13]) { if (p1[13] != p2[13]) {
i = 13; i = 13;
break; break;
} }
/* fall through */
case 13: case 13:
if (p1[12] != p2[12]) { if (p1[12] != p2[12]) {
i = 12; i = 12;
break; break;
} }
/* fall through */
case 12: case 12:
if (p1[11] != p2[11]) { if (p1[11] != p2[11]) {
i = 11; i = 11;
break; break;
} }
/* fall through */
case 11: case 11:
if (p1[10] != p2[10]) { if (p1[10] != p2[10]) {
i = 10; i = 10;
break; break;
} }
/* fall through */
case 10: case 10:
if (p1[9] != p2[9]) { if (p1[9] != p2[9]) {
i = 9; i = 9;
break; break;
} }
/* fall through */
case 9: case 9:
if (p1[8] != p2[8]) { if (p1[8] != p2[8]) {
i = 8; i = 8;
break; break;
} }
/* fall through */
case 8: case 8:
if (p1[7] != p2[7]) { if (p1[7] != p2[7]) {
i = 7; i = 7;
break; break;
} }
/* fall through */
case 7: case 7:
if (p1[6] != p2[6]) { if (p1[6] != p2[6]) {
i = 6; i = 6;
break; break;
} }
/* fall through */
case 6: case 6:
if (p1[5] != p2[5]) { if (p1[5] != p2[5]) {
i = 5; i = 5;
break; break;
} }
/* fall through */
case 5: case 5:
if (p1[4] != p2[4]) { if (p1[4] != p2[4]) {
i = 4; i = 4;
break; break;
} }
/* fall through */
case 4: case 4:
if (p1[3] != p2[3]) { if (p1[3] != p2[3]) {
i = 3; i = 3;
break; break;
} }
/* fall through */
case 3: case 3:
if (p1[2] != p2[2]) { if (p1[2] != p2[2]) {
i = 2; i = 2;
break; break;
} }
/* fall through */
case 2: case 2:
if (p1[1] != p2[1]) { if (p1[1] != p2[1]) {
i = 1; i = 1;
break; break;
} }
/* fall through */
case 1: case 1:
if (p1[0] != p2[0]) { if (p1[0] != p2[0]) {
i = 0; i = 0;
break; break;
} }
/* fall through */
default: default:
break; break;
} }

View File

@@ -67,7 +67,7 @@ void log_default_handler(log_level_t level, const char *module,
} }
} }
logger_t logger_root = { logger_t __default_logger_root = {
.name = "root", .name = "root",
.level = LOG_LEVEL_ALL, .level = LOG_LEVEL_ALL,
.handler = log_default_handler, .handler = log_default_handler,
@@ -79,20 +79,20 @@ void init_logger(logger_t *logger, const char *name) {
log_set_level(logger, LOG_LEVEL_ALL); log_set_level(logger, LOG_LEVEL_ALL);
} }
logger_t *log_get(const char *name) { return &logger_root; } logger_t *log_get(const char *name) { return &__default_logger_root; }
void log_set_level(logger_t *logger, int level) { void log_set_level(logger_t *logger, int level) {
if (logger) if (logger)
logger->level = level; logger->level = level;
else else
logger_root.level = level; __default_logger_root.level = level;
} }
void log_set_handler(logger_t *logger, log_handler handler) { void log_set_handler(logger_t *logger, log_handler handler) {
if (logger) if (logger)
logger->handler = handler; logger->handler = handler;
else else
logger_root.handler = handler; __default_logger_root.handler = handler;
} }
void logger_destroy(logger_t *logger) { return; } void logger_destroy(logger_t *logger) { return; }

View File

@@ -77,7 +77,7 @@ typedef struct logger {
void log_default_handler(log_level_t level, const char *module, void log_default_handler(log_level_t level, const char *module,
const char *file, int line, const char *message); const char *file, int line, const char *message);
extern logger_t logger_root; extern logger_t __default_logger_root;
/** /**
* @brief 初始化日志实例 其余参数设置为默认值 * @brief 初始化日志实例 其余参数设置为默认值
@@ -129,11 +129,7 @@ void logger_destroy(logger_t *logger);
*/ */
#define _LOG(_module_, _level_, _msg_, ...) \ #define _LOG(_module_, _level_, _msg_, ...) \
do { \ do { \
logger_t *_logger; \ logger_t *_logger = _module_; \
if (!_module_) { \
_logger = log_get(NULL); \
} else \
_logger = _module_; \
if (_logger && _logger->handler && (_logger->level & (_level_))) { \ if (_logger && _logger->handler && (_logger->level & (_level_))) { \
log_snprintf(_logger->buf, sizeof(_logger->buf), (_msg_), \ log_snprintf(_logger->buf, sizeof(_logger->buf), (_msg_), \
##__VA_ARGS__); \ ##__VA_ARGS__); \
@@ -142,41 +138,29 @@ void logger_destroy(logger_t *logger);
} \ } \
} while (0) } while (0)
/* clang-format off */
/// @name 模块日志宏 /// @name 模块日志宏
/// @{ /// @{
#define MLOG_NOTSET(module, ...) \ #define MLOG_NOTSET(module, ...)_LOG(module, LOG_LEVEL_NOTSET, __VA_ARGS__) ///< 未分类日志
_LOG(module, LOG_LEVEL_NOTSET, __VA_ARGS__) ///< 未分类日志 #define MLOG_DEBUG(module, ...) _LOG(module, LOG_LEVEL_DEBUG, __VA_ARGS__) ///< 调试日志需启用DEBUG级别
#define MLOG_DEBUG(module, ...) \ #define MLOG_INFO(module, ...) _LOG(module, LOG_LEVEL_INFO, __VA_ARGS__) ///< 信息日志(常规运行日志)
_LOG(module, LOG_LEVEL_DEBUG, __VA_ARGS__) ///< 调试日志(需启用DEBUG级别 #define MLOG_WARN(module, ...) _LOG(module, LOG_LEVEL_WARN, __VA_ARGS__) ///< 警告日志(潜在问题
#define MLOG_INFO(module, ...) \ #define MLOG_ERROR(module, ...) _LOG(module, LOG_LEVEL_ERROR, __VA_ARGS__) ///< 错误日志(可恢复错误)
_LOG(module, LOG_LEVEL_INFO, __VA_ARGS__) ///< 信息日志(常规运行日志 #define MLOG_FATAL(module, ...) _LOG(module, LOG_LEVEL_FATAL, __VA_ARGS__) ///< 致命错误日志(程序终止前
#define MLOG_WARN(module, ...) \ #define MLOG_TRACE(module, ...) _LOG(module, LOG_LEVEL_TRACE, __VA_ARGS__) ///< 追踪日志(调用栈跟踪)
_LOG(module, LOG_LEVEL_WARN, __VA_ARGS__) ///< 警告日志(潜在问题)
#define MLOG_ERROR(module, ...) \
_LOG(module, LOG_LEVEL_ERROR, __VA_ARGS__) ///< 错误日志(可恢复错误)
#define MLOG_FATAL(module, ...) \
_LOG(module, LOG_LEVEL_FATAL, __VA_ARGS__) ///< 致命错误日志(程序终止前)
#define MLOG_TRACE(module, ...) \
_LOG(module, LOG_LEVEL_TRACE, __VA_ARGS__) ///< 追踪日志(调用栈跟踪)
/// @} /// @}
/// @name 快捷日志宏 /// @name 快捷日志宏
/// @{ /// @{
#define LOG_NOTSET(...) \ #define LOG_NOTSET(...) _LOG(&__default_logger_root, LOG_LEVEL_NOTSET, __VA_ARGS__) ///< 未分类日志
_LOG(NULL, LOG_LEVEL_NOTSET, __VA_ARGS__) ///< 未分类日志 #define LOG_DEBUG(...) _LOG(&__default_logger_root, LOG_LEVEL_DEBUG, __VA_ARGS__) ///< 调试日志需启用DEBUG级别
#define LOG_DEBUG(...) \ #define LOG_INFO(...) _LOG(&__default_logger_root, LOG_LEVEL_INFO, __VA_ARGS__) ///< 信息日志(常规运行日志)
_LOG(NULL, LOG_LEVEL_DEBUG, __VA_ARGS__) ///< 调试日志(需启用DEBUG级别 #define LOG_WARN(...) _LOG(&__default_logger_root, LOG_LEVEL_WARN, __VA_ARGS__) ///< 警告日志(潜在问题
#define LOG_INFO(...) \ #define LOG_ERROR(...) _LOG(&__default_logger_root, LOG_LEVEL_ERROR, __VA_ARGS__) ///< 错误日志(可恢复错误)
_LOG(NULL, LOG_LEVEL_INFO, __VA_ARGS__) ///< 信息日志(常规运行日志 #define LOG_FATAL(...) _LOG(&__default_logger_root, LOG_LEVEL_FATAL, __VA_ARGS__) ///< 致命错误日志(程序终止前
#define LOG_WARN(...) \ #define LOG_TRACE(...) _LOG(&__default_logger_root, LOG_LEVEL_TRACE, __VA_ARGS__) ///< 追踪日志(调用栈跟踪)
_LOG(NULL, LOG_LEVEL_WARN, __VA_ARGS__) ///< 警告日志(潜在问题)
#define LOG_ERROR(...) \
_LOG(NULL, LOG_LEVEL_ERROR, __VA_ARGS__) ///< 错误日志(可恢复错误)
#define LOG_FATAL(...) \
_LOG(NULL, LOG_LEVEL_FATAL, __VA_ARGS__) ///< 致命错误日志(程序终止前)
#define LOG_TRACE(...) \
_LOG(NULL, LOG_LEVEL_TRACE, __VA_ARGS__) ///< 追踪日志(调用栈跟踪)
/// @} /// @}
/* clang-format on */
/** /**
* @def _Assert * @def _Assert