|
|
|
@ -176,6 +176,10 @@ func (t *Trie) TryGetNode(path []byte) ([]byte, int, error) { |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
func (t *Trie) tryGetNode(origNode node, path []byte, pos int) (item []byte, newnode node, resolved int, err error) { |
|
|
|
|
// If non-existent path requested, abort
|
|
|
|
|
if origNode == nil { |
|
|
|
|
return nil, nil, 0, nil |
|
|
|
|
} |
|
|
|
|
// If we reached the requested path, return the current node
|
|
|
|
|
if pos >= len(path) { |
|
|
|
|
// Although we most probably have the original node expanded, encoding
|
|
|
|
@ -195,10 +199,6 @@ func (t *Trie) tryGetNode(origNode node, path []byte, pos int) (item []byte, new |
|
|
|
|
} |
|
|
|
|
// Path still needs to be traversed, descend into children
|
|
|
|
|
switch n := (origNode).(type) { |
|
|
|
|
case nil: |
|
|
|
|
// Non-existent path requested, abort
|
|
|
|
|
return nil, nil, 0, nil |
|
|
|
|
|
|
|
|
|
case valueNode: |
|
|
|
|
// Path prematurely ended, abort
|
|
|
|
|
return nil, nil, 0, nil |
|
|
|
|