diff options
Diffstat (limited to 'internal/federation/dereferencing')
| -rw-r--r-- | internal/federation/dereferencing/thread.go | 26 | 
1 files 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 { | 
