From d216942b7cf352522dd8037bdcef78d4dc9d9240 Mon Sep 17 00:00:00 2001 From: CPerezz Date: Sun, 19 Apr 2026 22:15:48 +0200 Subject: [PATCH] trie/bintrie: make IsEmpty kind-based Comparing against emptyRef (the single value makeRef(kindEmpty, 0)) only works because no other nodeRef with kindEmpty is ever constructed. That invariant is easy to break if future code ever produces a kindEmpty ref with nonzero index. Test the kind directly so any kindEmpty ref reads as empty regardless of index. --- trie/bintrie/node_ref.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/trie/bintrie/node_ref.go b/trie/bintrie/node_ref.go index 793df7e225..17a25e56eb 100644 --- a/trie/bintrie/node_ref.go +++ b/trie/bintrie/node_ref.go @@ -53,4 +53,4 @@ func (r nodeRef) Kind() nodeKind { return nodeKind(uint32(r) >> kindShift) } // Index within the typed pool. func (r nodeRef) Index() uint32 { return uint32(r) & indexMask } -func (r nodeRef) IsEmpty() bool { return r == emptyRef } +func (r nodeRef) IsEmpty() bool { return r.Kind() == kindEmpty }