Skip to content

Commit

Permalink
[bugfix] more nil checks baybeeeeeeeeeeeeeeeeeeee (#854)
Browse files Browse the repository at this point in the history
* 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>
  • Loading branch information
NyaaaWhatsUpDoc authored Sep 26, 2022
1 parent 7bea107 commit 15a67b7
Showing 1 changed file with 7 additions and 19 deletions.
26 changes: 7 additions & 19 deletions internal/federation/dereferencing/thread.go
Original file line number Diff line number Diff line change
Expand Up @@ -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 (
Expand Down Expand Up @@ -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
Expand Down Expand Up @@ -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,
Expand All @@ -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 {
Expand Down

0 comments on commit 15a67b7

Please sign in to comment.