From 3eeb3ec887bec052803c5881d55e618bc2c5fb4f Mon Sep 17 00:00:00 2001 From: mcrakhman Date: Thu, 20 Oct 2022 19:39:45 +0200 Subject: [PATCH] Fix listener sync tree and diff iter bug --- common/commonspace/synctree/synctree.go | 16 +++++++++------- common/pkg/ldiff/diff.go | 2 ++ 2 files changed, 11 insertions(+), 7 deletions(-) diff --git a/common/commonspace/synctree/synctree.go b/common/commonspace/synctree/synctree.go index 4c83cf95..4ed4e255 100644 --- a/common/commonspace/synctree/synctree.go +++ b/common/commonspace/synctree/synctree.go @@ -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) diff --git a/common/pkg/ldiff/diff.go b/common/pkg/ldiff/diff.go index 495f6388..840de719 100644 --- a/common/pkg/ldiff/diff.go +++ b/common/pkg/ldiff/diff.go @@ -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 }