gtsocial-umbx

Unnamed repository; edit this file 'description' to name the repository.
Log | Files | Refs | README | LICENSE

commit 15a67b7bef9b897415b3b9a05b9d5aa56f45c14d
parent 7bea1076086418198280a66e35b55277edc90ee6
Author: kim <89579420+NyaaaWhatsUpDoc@users.noreply.github.com>
Date:   Mon, 26 Sep 2022 09:50:14 +0100

[bugfix] more nil checks baybeeeeeeeeeeeeeeeeeeee (#854)

* more nil checks baybeeeeeeeeeeeeeeeeeeee

Signed-off-by: kim <grufwub@gmail.com>

* move item nil checks

Signed-off-by: kim <grufwub@gmail.com>

Signed-off-by: kim <grufwub@gmail.com>
Diffstat:
Minternal/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 @@ -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 {