From 15a67b7bef9b897415b3b9a05b9d5aa56f45c14d Mon Sep 17 00:00:00 2001 From: kim <89579420+NyaaaWhatsUpDoc@users.noreply.github.com> Date: Mon, 26 Sep 2022 09:50:14 +0100 Subject: [PATCH] [bugfix] more nil checks baybeeeeeeeeeeeeeeeeeeee (#854) * more nil checks baybeeeeeeeeeeeeeeeeeeee Signed-off-by: kim * move item nil checks Signed-off-by: kim Signed-off-by: kim --- internal/federation/dereferencing/thread.go | 26 ++++++--------------- 1 file changed, 7 insertions(+), 19 deletions(-) diff --git a/internal/federation/dereferencing/thread.go b/internal/federation/dereferencing/thread.go index c0a758ee3..34955cee8 100644 --- a/internal/federation/dereferencing/thread.go +++ b/internal/federation/dereferencing/thread.go @@ -152,8 +152,6 @@ func (d *deref) dereferenceStatusDescendants(ctx context.Context, username strin statusable ap.Statusable page ap.CollectionPageable itemIter vocab.ActivityStreamsItemsPropertyIterator - iterLen int - iterIdx int } var ( @@ -240,22 +238,22 @@ stackLoop: continue stackLoop } - // Check this page contains any items... - if current.iterLen = items.Len(); current.iterLen == 0 { - continue stackLoop - } - // Start off the item iterator current.itemIter = items.Begin() - current.iterIdx = 0 + if current.itemIter == nil { + continue stackLoop + } } itemLoop: - for ; current.iterIdx < current.iterLen; current.iterIdx++ { + for { var itemIRI *url.URL // Get next item iterator object current.itemIter = current.itemIter.Next() + if current.itemIter == nil { + break itemLoop + } if iri := current.itemIter.GetIRI(); iri != nil { // Item is already an IRI type @@ -284,13 +282,6 @@ stackLoop: continue itemLoop } - // Iter past this item. Normally this would be - // handled by the third clause of the itemLoop's - // embedded range checking, but at the bottom of this - // loop since we found a new status we circle back to - // the beginning of the stackLoop and skip iteration. - current.iterIdx++ - // Put current and next frame at top of stack stack = append(stack, current, &frame{ statusIRI: itemIRI, @@ -301,9 +292,6 @@ stackLoop: continue stackLoop } - // Item iterator is done - current.itemIter = nil - // Get the current page's "next" property pageNext := current.page.GetActivityStreamsNext() if pageNext == nil {