From 45260d320d8752df1e9f3e1f0f3b79da8f89cc3a Mon Sep 17 00:00:00 2001 From: Roland Conybeare Date: Wed, 7 Jan 2026 17:59:46 -0500 Subject: [PATCH] xo-arena: verify SM1.2 in DArenaHashMap.verify_ok --- xo-arena/include/xo/arena/DArenaHashMap.hpp | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/xo-arena/include/xo/arena/DArenaHashMap.hpp b/xo-arena/include/xo/arena/DArenaHashMap.hpp index 960c3a2d..a39420be 100644 --- a/xo-arena/include/xo/arena/DArenaHashMap.hpp +++ b/xo-arena/include/xo/arena/DArenaHashMap.hpp @@ -432,11 +432,26 @@ namespace xo { /* SM1.1: size_ <= n_slot_ */ if (size_ > n_slot_) { return policy.report_error(log, - c_self, ": expect .size < .n_slot", + c_self, ": expect .size <= .n_slot", xtag("size", size_), xtag("n_slot", n_slot_)); } + /* SM1.2: control_[] size consistent with slots_[] size */ + if (control_.size() != n_slot_ + c_group_size) { + return policy.report_error(log, + c_self, ": expect .control_.size = .n_slot + c_group_size", + xtag("control_.size", control_.size()), + xtag("n_slot", n_slot_), + xtag("c_group_size", c_group_size)); + } + if (slots_.size() != n_slot_) { + return policy.report_error(log, + c_self, ": expect .slots_.size = .n_slot", + xtag("slots_.size", slots_.size()), + xtag("n_slot", n_slot_)); + } + return true; } }