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 {
return
}
switch res.Mode {
case tree2.Nothing:
return
case tree2.Append:
s.listener.Update(s)
case tree2.Rebuild:
s.listener.Rebuild(s)
if s.listener != nil {
switch res.Mode {
case tree2.Nothing:
return
case tree2.Append:
s.listener.Update(s)
case tree2.Rebuild:
s.listener.Rebuild(s)
}
}
headUpdate := s.syncClient.CreateHeadUpdate(s, res.Added)

View File

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