mirror of
https://github.com/isc-projects/bind9.git
synced 2026-03-09 01:30:39 -04:00
Repack dns_rbtnode struct to gain some space (reduce packing holes) (#41854)
(cherry picked from commit8dbf9ceb8c) (cherry picked from commit2a461f1348)
This commit is contained in:
parent
d78d3e3814
commit
4bb2aa3e15
1 changed files with 23 additions and 19 deletions
|
|
@ -80,22 +80,6 @@ struct dns_rbtnode {
|
|||
#if DNS_RBT_USEMAGIC
|
||||
unsigned int magic;
|
||||
#endif
|
||||
dns_rbtnode_t *parent;
|
||||
dns_rbtnode_t *left;
|
||||
dns_rbtnode_t *right;
|
||||
dns_rbtnode_t *down;
|
||||
#ifdef DNS_RBT_USEHASH
|
||||
dns_rbtnode_t *uppernode;
|
||||
dns_rbtnode_t *hashnext;
|
||||
#endif
|
||||
|
||||
/*%
|
||||
* Used for LRU cache. This linked list is used to mark nodes which
|
||||
* have no data any longer, but we cannot unlink at that exact moment
|
||||
* because we did not or could not obtain a write lock on the tree.
|
||||
*/
|
||||
ISC_LINK(dns_rbtnode_t) deadlink;
|
||||
|
||||
/*@{*/
|
||||
/*!
|
||||
* The following bitfields add up to a total bitwidth of 32.
|
||||
|
|
@ -119,9 +103,32 @@ struct dns_rbtnode {
|
|||
/* node needs to be cleaned from rpz */
|
||||
unsigned int rpz : 1;
|
||||
|
||||
/*@{*/
|
||||
/*!
|
||||
* These values are used in the RBT DB implementation. The appropriate
|
||||
* node lock must be held before accessing them.
|
||||
*/
|
||||
unsigned int dirty:1;
|
||||
unsigned int wild:1;
|
||||
unsigned int locknum:DNS_RBT_LOCKLENGTH;
|
||||
/*@}*/
|
||||
|
||||
#ifdef DNS_RBT_USEHASH
|
||||
unsigned int hashval;
|
||||
dns_rbtnode_t *uppernode;
|
||||
dns_rbtnode_t *hashnext;
|
||||
#endif
|
||||
dns_rbtnode_t *parent;
|
||||
dns_rbtnode_t *left;
|
||||
dns_rbtnode_t *right;
|
||||
dns_rbtnode_t *down;
|
||||
|
||||
/*%
|
||||
* Used for LRU cache. This linked list is used to mark nodes which
|
||||
* have no data any longer, but we cannot unlink at that exact moment
|
||||
* because we did not or could not obtain a write lock on the tree.
|
||||
*/
|
||||
ISC_LINK(dns_rbtnode_t) deadlink;
|
||||
|
||||
/*@{*/
|
||||
/*!
|
||||
|
|
@ -129,9 +136,6 @@ struct dns_rbtnode {
|
|||
* node lock must be held before accessing them.
|
||||
*/
|
||||
void *data;
|
||||
unsigned int dirty:1;
|
||||
unsigned int wild:1;
|
||||
unsigned int locknum:DNS_RBT_LOCKLENGTH;
|
||||
#ifndef DNS_RBT_USEISCREFCOUNT
|
||||
unsigned int references:DNS_RBT_REFLENGTH;
|
||||
#else
|
||||
|
|
|
|||
Loading…
Reference in a new issue