Compare commits
2
Commits
e7ed47e288
...
fd39065498
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
fd39065498 | ||
|
|
b963d481c9 |
+14
-3
@@ -1574,11 +1574,22 @@ Node *nextPhysical(Node *node) {
|
||||
}
|
||||
|
||||
Node *nextLogical(Node *node) {
|
||||
for (node = nextPhysical(node); node != nullptr && !node->entryPresent;
|
||||
node = nextPhysical(node))
|
||||
;
|
||||
int index = -1;
|
||||
for (;;) {
|
||||
auto nextChild = getChildGeq(node, index + 1);
|
||||
if (nextChild != nullptr) {
|
||||
for (node = nextChild; !node->entryPresent;
|
||||
node = getFirstChildExists(node)) {
|
||||
}
|
||||
return node;
|
||||
}
|
||||
index = node->parentsIndex;
|
||||
node = node->parent;
|
||||
if (node == nullptr) {
|
||||
return nullptr;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Invalidates `self`, replacing it with a node of at least capacity.
|
||||
// Does not return nodes to freelists when kUseFreeList is false.
|
||||
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Reference in New Issue
Block a user