|
|
@@ -174,6 +174,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
|
|
|
@@ -193,10 +197,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
|