From fa5611dabd4724dcc242f0eac0ff665c11ce5750 Mon Sep 17 00:00:00 2001 From: zzy <2450266535@qq.com> Date: Sat, 22 Nov 2025 16:59:28 +0800 Subject: [PATCH] =?UTF-8?q?fix(log):=20=E4=BF=AE=E5=A4=8D=E9=BB=98?= =?UTF-8?q?=E8=AE=A4=E6=97=A5=E5=BF=97=E5=AE=9E=E4=BE=8B=E5=91=BD=E5=90=8D?= =?UTF-8?q?=E5=86=B2=E7=AA=81=E5=B9=B6=E4=BC=98=E5=8C=96=E5=AE=8F=E5=AE=9A?= =?UTF-8?q?=E4=B9=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 将 `logger_root` 重命名为 `__default_logger_root` 以避免潜在的符号冲突, 同时简化日志宏定义逻辑,提升代码可读性与维护性。此外,为防止 clang-format 格式化影响日志宏的排版,添加了 clang-format 开关注释。 refactor(memory): 优化 memcmp 函数中的 switch-case 结构 在 `smcc_memcmp` 函数中为每个 case 添加 `/* fall through */` 注释, 明确表示故意穿透到下一个 case,提高代码意图的清晰度,并增强静态分析工具的兼容性。 --- runtime/libcore/src/memory.c | 16 +++++++++++ runtime/log/include/log.c | 8 +++--- runtime/log/include/log.h | 52 +++++++++++++----------------------- 3 files changed, 38 insertions(+), 38 deletions(-) diff --git a/runtime/libcore/src/memory.c b/runtime/libcore/src/memory.c index ccc0e67..03471c5 100644 --- a/runtime/libcore/src/memory.c +++ b/runtime/libcore/src/memory.c @@ -222,81 +222,97 @@ int smcc_memcmp(const void *s1, const void *s2, usize n) { i = 15; break; } + /* fall through */ case 15: if (p1[14] != p2[14]) { i = 14; break; } + /* fall through */ case 14: if (p1[13] != p2[13]) { i = 13; break; } + /* fall through */ case 13: if (p1[12] != p2[12]) { i = 12; break; } + /* fall through */ case 12: if (p1[11] != p2[11]) { i = 11; break; } + /* fall through */ case 11: if (p1[10] != p2[10]) { i = 10; break; } + /* fall through */ case 10: if (p1[9] != p2[9]) { i = 9; break; } + /* fall through */ case 9: if (p1[8] != p2[8]) { i = 8; break; } + /* fall through */ case 8: if (p1[7] != p2[7]) { i = 7; break; } + /* fall through */ case 7: if (p1[6] != p2[6]) { i = 6; break; } + /* fall through */ case 6: if (p1[5] != p2[5]) { i = 5; break; } + /* fall through */ case 5: if (p1[4] != p2[4]) { i = 4; break; } + /* fall through */ case 4: if (p1[3] != p2[3]) { i = 3; break; } + /* fall through */ case 3: if (p1[2] != p2[2]) { i = 2; break; } + /* fall through */ case 2: if (p1[1] != p2[1]) { i = 1; break; } + /* fall through */ case 1: if (p1[0] != p2[0]) { i = 0; break; } + /* fall through */ default: break; } diff --git a/runtime/log/include/log.c b/runtime/log/include/log.c index d9cbd00..cf161ec 100644 --- a/runtime/log/include/log.c +++ b/runtime/log/include/log.c @@ -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", .level = LOG_LEVEL_ALL, .handler = log_default_handler, @@ -79,20 +79,20 @@ void init_logger(logger_t *logger, const char *name) { 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) { if (logger) logger->level = level; else - logger_root.level = level; + __default_logger_root.level = level; } void log_set_handler(logger_t *logger, log_handler handler) { if (logger) logger->handler = handler; else - logger_root.handler = handler; + __default_logger_root.handler = handler; } void logger_destroy(logger_t *logger) { return; } diff --git a/runtime/log/include/log.h b/runtime/log/include/log.h index 456b7a1..1efa031 100644 --- a/runtime/log/include/log.h +++ b/runtime/log/include/log.h @@ -77,7 +77,7 @@ typedef struct logger { void log_default_handler(log_level_t level, const char *module, const char *file, int line, const char *message); -extern logger_t logger_root; +extern logger_t __default_logger_root; /** * @brief 初始化日志实例 其余参数设置为默认值 @@ -129,11 +129,7 @@ void logger_destroy(logger_t *logger); */ #define _LOG(_module_, _level_, _msg_, ...) \ do { \ - logger_t *_logger; \ - if (!_module_) { \ - _logger = log_get(NULL); \ - } else \ - _logger = _module_; \ + logger_t *_logger = _module_; \ if (_logger && _logger->handler && (_logger->level & (_level_))) { \ log_snprintf(_logger->buf, sizeof(_logger->buf), (_msg_), \ ##__VA_ARGS__); \ @@ -142,41 +138,29 @@ void logger_destroy(logger_t *logger); } \ } while (0) +/* clang-format off */ /// @name 模块日志宏 /// @{ -#define MLOG_NOTSET(module, ...) \ - _LOG(module, LOG_LEVEL_NOTSET, __VA_ARGS__) ///< 未分类日志 -#define MLOG_DEBUG(module, ...) \ - _LOG(module, LOG_LEVEL_DEBUG, __VA_ARGS__) ///< 调试日志(需启用DEBUG级别) -#define MLOG_INFO(module, ...) \ - _LOG(module, LOG_LEVEL_INFO, __VA_ARGS__) ///< 信息日志(常规运行日志) -#define MLOG_WARN(module, ...) \ - _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__) ///< 追踪日志(调用栈跟踪) +#define MLOG_NOTSET(module, ...)_LOG(module, LOG_LEVEL_NOTSET, __VA_ARGS__) ///< 未分类日志 +#define MLOG_DEBUG(module, ...) _LOG(module, LOG_LEVEL_DEBUG, __VA_ARGS__) ///< 调试日志(需启用DEBUG级别) +#define MLOG_INFO(module, ...) _LOG(module, LOG_LEVEL_INFO, __VA_ARGS__) ///< 信息日志(常规运行日志) +#define MLOG_WARN(module, ...) _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 快捷日志宏 /// @{ -#define LOG_NOTSET(...) \ - _LOG(NULL, LOG_LEVEL_NOTSET, __VA_ARGS__) ///< 未分类日志 -#define LOG_DEBUG(...) \ - _LOG(NULL, LOG_LEVEL_DEBUG, __VA_ARGS__) ///< 调试日志(需启用DEBUG级别) -#define LOG_INFO(...) \ - _LOG(NULL, LOG_LEVEL_INFO, __VA_ARGS__) ///< 信息日志(常规运行日志) -#define LOG_WARN(...) \ - _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__) ///< 追踪日志(调用栈跟踪) +#define LOG_NOTSET(...) _LOG(&__default_logger_root, LOG_LEVEL_NOTSET, __VA_ARGS__) ///< 未分类日志 +#define LOG_DEBUG(...) _LOG(&__default_logger_root, LOG_LEVEL_DEBUG, __VA_ARGS__) ///< 调试日志(需启用DEBUG级别) +#define LOG_INFO(...) _LOG(&__default_logger_root, LOG_LEVEL_INFO, __VA_ARGS__) ///< 信息日志(常规运行日志) +#define LOG_WARN(...) _LOG(&__default_logger_root, LOG_LEVEL_WARN, __VA_ARGS__) ///< 警告日志(潜在问题) +#define LOG_ERROR(...) _LOG(&__default_logger_root, LOG_LEVEL_ERROR, __VA_ARGS__) ///< 错误日志(可恢复错误) +#define LOG_FATAL(...) _LOG(&__default_logger_root, LOG_LEVEL_FATAL, __VA_ARGS__) ///< 致命错误日志(程序终止前) +#define LOG_TRACE(...) _LOG(&__default_logger_root, LOG_LEVEL_TRACE, __VA_ARGS__) ///< 追踪日志(调用栈跟踪) /// @} +/* clang-format on */ /** * @def _Assert