From 29fb1b20f50bb7847dec9e144cc04cab352a1c6d Mon Sep 17 00:00:00 2001 From: Roland Conybeare Date: Wed, 7 Jan 2026 18:14:40 -0500 Subject: [PATCH] xo-arena: verify SM3.2 in DArenaHashMap.verify_ok --- xo-arena/include/xo/arena/DArenaHashMap.hpp | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/xo-arena/include/xo/arena/DArenaHashMap.hpp b/xo-arena/include/xo/arena/DArenaHashMap.hpp index 981e4e01..7c1dfbc0 100644 --- a/xo-arena/include/xo/arena/DArenaHashMap.hpp +++ b/xo-arena/include/xo/arena/DArenaHashMap.hpp @@ -495,6 +495,23 @@ namespace xo { } } + /* SM3.2: {number of control_[i] spots with non-sentinel values} = size_ */ + { + size_type occupied_count = 0; + for (size_type i = 0; i < n_slot_; ++i) { + uint8_t c = control_[i]; + if ((c != c_empty_slot) && (c != c_tombstone)) { + ++occupied_count; + } + } + if (occupied_count != size_) { + return policy.report_error(log, + c_self, ": expect occupied control count = size", + xtag("occupied_count", occupied_count), + xtag("size", size_)); + } + } + return true; } }