From 3904b3a1eeef9fbf6db52414340b3bc830cf7dd2 Mon Sep 17 00:00:00 2001 From: Abdelrahman Said Date: Wed, 17 Dec 2025 05:20:27 +0000 Subject: [PATCH] Node validation checks against list --- src/base/dbl_list/dbl_list.c | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/src/base/dbl_list/dbl_list.c b/src/base/dbl_list/dbl_list.c index 583d049..525d648 100644 --- a/src/base/dbl_list/dbl_list.c +++ b/src/base/dbl_list/dbl_list.c @@ -7,9 +7,9 @@ #include "../../common/platform/platform.h" #include -wapp_intern GenericList _node_to_list(GenericNode *node, u64 item_size); -wapp_intern void _dbl_list_validate(const GenericList *list, u64 item_size); -wapp_intern void _dbl_list_node_validate(const GenericNode *node, u64 item_size); +wapp_intern inline GenericList _node_to_list(GenericNode *node, u64 item_size); +wapp_intern inline void _dbl_list_validate(const GenericList *list, u64 item_size); +wapp_intern inline void _dbl_list_node_validate(const GenericList *list, const GenericNode *node, u64 item_size); GenericList *_dbl_list_alloc(const Allocator *allocator, u64 item_size) { wapp_debug_assert(allocator != NULL, "`allocator` should not be NULL"); @@ -58,7 +58,7 @@ GenericNode *_dbl_list_get(const GenericList *list, u64 index, u64 item_size) { void _dbl_list_push_front(GenericList *list, GenericNode *node, u64 item_size) { wapp_debug_assert(list != NULL && node != NULL && (node->item) != NULL, "`list`, `node` and `node->item` should not be NULL"); _dbl_list_validate(list, item_size); - _dbl_list_node_validate(node, item_size); + _dbl_list_node_validate(list, node, item_size); GenericList node_list = _node_to_list(node, item_size); @@ -81,7 +81,7 @@ void _dbl_list_push_front(GenericList *list, GenericNode *node, u64 item_size) { void _dbl_list_push_back(GenericList *list, GenericNode *node, u64 item_size) { wapp_debug_assert(list != NULL && node != NULL && (node->item) != NULL, "`list`, `node` and `node->item` should not be NULL"); _dbl_list_validate(list, item_size); - _dbl_list_node_validate(node, item_size); + _dbl_list_node_validate(list, node, item_size); GenericList node_list = _node_to_list(node, item_size); @@ -104,7 +104,7 @@ void _dbl_list_push_back(GenericList *list, GenericNode *node, u64 item_size) { void _dbl_list_insert(GenericList *list, GenericNode *node, u64 index, u64 item_size) { wapp_debug_assert(list != NULL && node != NULL && (node->item) != NULL, "`list`, `node` and `node->item` should not be NULL"); _dbl_list_validate(list, item_size); - _dbl_list_node_validate(node, item_size); + _dbl_list_node_validate(list, node, item_size); if (index == 0) { _dbl_list_push_front(list, node, item_size); @@ -251,7 +251,8 @@ wapp_intern void _dbl_list_validate(const GenericList *list, u64 item_size) { wapp_runtime_assert(list->item_size == item_size, "Invalid item provided"); } -wapp_intern void _dbl_list_node_validate(const GenericNode *node, u64 item_size) { +wapp_intern void _dbl_list_node_validate(const GenericList *list, const GenericNode *node, u64 item_size) { wapp_runtime_assert(node->magic == WAPP_DBL_NODE_MAGIC, "`node` isn't a valid wapp node type"); + wapp_runtime_assert(list->item_size == node->item_size, "Mismatched `list` and `node` types"); wapp_runtime_assert(node->item_size == item_size, "Invalid item provided"); }