dfilter: Rewrite ws_assert_magic() again

This commit is contained in:
João Valverde 2021-10-08 04:14:56 +01:00 committed by Wireshark GitLab Utility
parent 541d45fc6f
commit db85625af9
2 changed files with 13 additions and 27 deletions

View File

@ -10,10 +10,7 @@
#define WS_LOG_DOMAIN LOG_DOMAIN_DFILTER
#include <inttypes.h>
#include "syntax-tree.h"
#include <wsutil/ws_assert.h>
#include <wsutil/wslog.h>
#include <wsutil/wmem/wmem.h>
#include <wsutil/str_util.h>
#include "sttype-test.h"
@ -380,20 +377,6 @@ log_syntax_tree(enum ws_log_level level, stnode_t *root, const char *msg)
wmem_strbuf_destroy(buf);
}
void
ws_assert_magic_full(const char *domain, enum ws_log_level level,
const char *file, int line, const char *func,
const void *ptr, uint32_t magic)
{
const stnode_t *node = (const stnode_t *)ptr;
ws_assert(node);
if (node->magic != magic) {
ws_log_full(domain, level, file, line, func,
"Magic num is 0x%08"PRIx32", but should be 0x%08"PRIx32,
node->magic, magic);
}
}
/*
* Editor modelines - https://www.wireshark.org/tools/modelines.html
*

View File

@ -10,10 +10,11 @@
#define SYNTAX_TREE_H
#include <stdio.h>
#include <stdint.h>
#include <inttypes.h>
#include <glib.h>
#include "ws_log_defs.h"
#include <wsutil/ws_assert.h>
#include <wsutil/wslog.h>
/** @file
*/
@ -147,18 +148,20 @@ log_stnode_full(enum ws_log_level level,
void
log_syntax_tree(enum ws_log_level, stnode_t *root, const char *msg);
void
ws_assert_magic_full(const char *domain, enum ws_log_level level,
const char *file, int line, const char *func,
const void *node, uint32_t magic);
#ifdef WS_DISABLE_DEBUG
#define ws_assert_magic(obj, mnum) (void)0
#else
#define ws_assert_magic(obj, mnum) \
ws_assert_magic_full(LOG_DOMAIN_DFILTER, LOG_LEVEL_CRITICAL, \
__FILE__, __LINE__, __func__, \
obj, mnum)
do { \
ws_assert(obj); \
if ((obj)->magic != (mnum)) { \
ws_log_full(LOG_DOMAIN_DFILTER, LOG_LEVEL_CRITICAL, \
__FILE__, __LINE__, __func__, \
"Magic num is 0x%08"PRIx32", " \
"but should be 0x%08"PRIx32, \
(obj)->magic, (mnum)); \
} \
} while(0)
#endif
#endif /* SYNTAX_TREE_H */