mirror of
https://github.com/XRPLF/rippled.git
synced 2026-10-24 04:27:22 +00:00
getMissingNodes() returns an empty list and walks nothing once the map is Invalid, and a walk that resolves an inner node at a position only a leaf may occupy records that verdict itself, since no node on that route passes through addKnownNode() and getChildNodeID() has no answer at kLeafDepth. The map is judged again after the deferred reads are drained and once more before the result is returned, since another thread can write the verdict in between. Every posted read is drained either way, because each holds a pointer to the walk's state. A caller must ask isValid() to tell an empty result from a satisfied map, which the docstring now states. The depth test precedes the full-below cache lookup, as in addKnownNode().