aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--ethutil/trie.go4
-rw-r--r--ethutil/trie_test.go19
2 files changed, 10 insertions, 13 deletions
diff --git a/ethutil/trie.go b/ethutil/trie.go
index 83527d364..a17dc37ad 100644
--- a/ethutil/trie.go
+++ b/ethutil/trie.go
@@ -439,7 +439,7 @@ func (it *TrieIterator) workNode(currentNode *Value) {
if currentNode.Len() == 2 {
k := CompactDecode(currentNode.Get(0).Str())
- if currentNode.Get(1).IsSlice() {
+ if currentNode.Get(1).Str() == "" {
it.workNode(currentNode.Get(1))
} else {
if k[len(k)-1] == 16 {
@@ -454,7 +454,7 @@ func (it *TrieIterator) workNode(currentNode *Value) {
if i == 16 && currentNode.Get(i).Len() != 0 {
it.values = append(it.values, currentNode.Get(i).Str())
} else {
- if currentNode.Get(i).IsSlice() {
+ if currentNode.Get(i).Str() == "" {
it.workNode(currentNode.Get(i))
} else {
val := currentNode.Get(i).Str()
diff --git a/ethutil/trie_test.go b/ethutil/trie_test.go
index c3a8f224d..645c5a225 100644
--- a/ethutil/trie_test.go
+++ b/ethutil/trie_test.go
@@ -1,7 +1,6 @@
package ethutil
import (
- "fmt"
"reflect"
"testing"
)
@@ -160,15 +159,13 @@ func TestTrieIterator(t *testing.T) {
trie.Update("ca", LONG_WORD)
trie.Update("cat", LONG_WORD)
+ lenBefore := len(trie.cache.nodes)
it := trie.NewIterator()
- fmt.Println("purging")
- fmt.Println("len =", it.Purge())
- /*
- for it.Next() {
- k := it.Key()
- v := it.Value()
-
- fmt.Println(k, v)
- }
- */
+ if num := it.Purge(); num != 3 {
+ t.Errorf("Expected purge to return 3, got %d", num)
+ }
+
+ if lenBefore == len(trie.cache.nodes) {
+ t.Errorf("Expected cached nodes to be deleted")
+ }
}