good morning!!!!

Skip to content
Snippets Groups Projects
Commit 9ed0d389 authored by Jeffrey Wilcke's avatar Jeffrey Wilcke
Browse files

Generic trie

parent 00bb68d7
No related branches found
No related tags found
No related merge requests found
...@@ -191,7 +191,17 @@ func (t *Trie) Get(key string) string { ...@@ -191,7 +191,17 @@ func (t *Trie) Get(key string) string {
} }
func (t *Trie) Delete(key string) { func (t *Trie) Delete(key string) {
t.Update(key, "") t.mut.Lock()
defer t.mut.Unlock()
k := CompactHexDecode(key)
root := t.DeleteState(t.Root, k)
if _, ok := root.([]byte); !ok {
t.Root = t.cache.PutValue(root, true)
} else {
t.Root = root
}
} }
func (t *Trie) GetState(node interface{}, key []int) interface{} { func (t *Trie) GetState(node interface{}, key []int) interface{} {
...@@ -243,15 +253,7 @@ func (t *Trie) GetNode(node interface{}) *Value { ...@@ -243,15 +253,7 @@ func (t *Trie) GetNode(node interface{}) *Value {
} }
func (t *Trie) UpdateState(node interface{}, key []int, value string) interface{} { func (t *Trie) UpdateState(node interface{}, key []int, value string) interface{} {
if value != "" {
return t.InsertState(node, key, value) return t.InsertState(node, key, value)
} else {
// delete it
return t.DeleteState(node, key)
}
return t.Root
} }
func (t *Trie) Put(node interface{}) interface{} { func (t *Trie) Put(node interface{}) interface{} {
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment