Fix change 6093 which broke rbtdb when it grew too large
I misunderstood the purpose of the heap_index
rdataset header
member; I thought it identified which heap to use, and could therefore
be smaller, the same size as locknum
indexes. But in fact it is a
position within a heap, so it needs to be able to count up to the
total number of rdatasets in the rbtdb.
So this changes heap_index
from uint16_t
back to unsigned int
.
To avoid re-embiggening the rdatasetheader, shrink the count
member
from uint32
to uint16
. The count
is used to rotate RRsets in
dns_rdataset_towiresorted()
, so 16 bits is more than large enough.
This change also means we no longer need to avoid colliding with
DNS_RDATASET_COUNT_UNDEFINED
i.e. UINT32_MAX.
Closes #3862 (closed)