Page MenuHomeFreeBSD

D50353.diff
No OneTemporary

D50353.diff

diff --git a/sys/kern/subr_pctrie.c b/sys/kern/subr_pctrie.c
--- a/sys/kern/subr_pctrie.c
+++ b/sys/kern/subr_pctrie.c
@@ -617,16 +617,16 @@
struct pctrie_node **parent_out, smr_t smr, enum pctrie_access access)
{
struct pctrie_node *parent;
+ uint64_t *val;
int base, end, i;
parent = node;
for (i = 0; i < count;) {
node = _pctrie_lookup_node(ptree, parent, index + i, &parent,
smr, access);
- value[i] = pctrie_match_value(node, index + i);
- if (value[i] == NULL)
+ if ((val = pctrie_match_value(node, index + i)) == NULL)
break;
- ++i;
+ value[i++] = val;
base = (index + i) % PCTRIE_COUNT;
if (base == 0 || parent == NULL || parent->pn_clev != 0)
continue;
@@ -634,10 +634,9 @@
while (i < end) {
node = pctrie_node_load(&parent->pn_child[base++],
smr, access);
- value[i] = pctrie_toval(node);
- if (value[i] == NULL)
+ if ((val = pctrie_toval(node)) == NULL)
break;
- ++i;
+ value[i++] = val;
}
if (i < end)
break;

File Metadata

Mime Type
text/plain
Expires
Fri, Apr 10, 8:39 AM (4 h, 8 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
31214088
Default Alt Text
D50353.diff (1008 B)

Event Timeline