Fix listener sync tree and diff iter bug

This commit is contained in:
mcrakhman 2022-10-20 19:39:45 +02:00 committed by Mikhail Iudin
parent 40d5d832fb
commit 3eeb3ec887
No known key found for this signature in database
GPG Key ID: FAAAA8BAABDFF1C0
2 changed files with 11 additions and 7 deletions

View File

@ -134,13 +134,15 @@ func (s *SyncTree) AddRawChanges(ctx context.Context, changes ...*treechangeprot
if err != nil { if err != nil {
return return
} }
switch res.Mode { if s.listener != nil {
case tree2.Nothing: switch res.Mode {
return case tree2.Nothing:
case tree2.Append: return
s.listener.Update(s) case tree2.Append:
case tree2.Rebuild: s.listener.Update(s)
s.listener.Rebuild(s) case tree2.Rebuild:
s.listener.Rebuild(s)
}
} }
headUpdate := s.syncClient.CreateHeadUpdate(s, res.Added) headUpdate := s.syncClient.CreateHeadUpdate(s, res.Added)

View File

@ -149,6 +149,7 @@ func (d *diff) Ids() (ids []string) {
for cur != nil { for cur != nil {
el := cur.Key().(*element).Element el := cur.Key().(*element).Element
ids = append(ids, el.Id) ids = append(ids, el.Id)
cur = cur.Next()
} }
return return
} }
@ -163,6 +164,7 @@ func (d *diff) Elements() (elements []Element) {
for cur != nil { for cur != nil {
el := cur.Key().(*element).Element el := cur.Key().(*element).Element
elements = append(elements, el) elements = append(elements, el)
cur = cur.Next()
} }
return return
} }