Skip to content
11 changes: 8 additions & 3 deletions gnovm/pkg/gnolang/values.go
Original file line number Diff line number Diff line change
Expand Up @@ -657,15 +657,16 @@ func (ml MapList) MarshalAmino() (MapListImage, error) {
func (ml *MapList) UnmarshalAmino(mlimg MapListImage) error {
for i, item := range mlimg.List {
if i == 0 {
item.Prev = nil
ml.Head = item
ml.Tail = item
item.Prev = nil
ml.Size = 1
} else {
item.Prev = ml.Tail
ml.Tail.Next = item
ml.Tail = item
ml.Size++
}
ml.Size++
}
return nil
}
Expand All @@ -682,15 +683,19 @@ func (ml *MapList) Append(alloc *Allocator, key TypedValue) *MapListItem {
if ml.Head == nil {
ml.Head = item
ml.Tail = item
ml.Size = 1
} else {
ml.Tail.Next = item
ml.Tail = item
ml.Size++
}
ml.Size++
return item
}

func (ml *MapList) Remove(mli *MapListItem) {
if ml.Size == 0 {
return
}
prev, next := mli.Prev, mli.Next
if prev == nil {
ml.Head = next
Expand Down
Loading