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:
@@ -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;
|
||||
}
|
||||
|
||||
@@ -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; }
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user