Slate crash when exiting PIE (SListView and GC)

Ok, let me tell you how I’d do it.

I assume you want to store a pointer to an actor/interface/uobject/whatever in your list. So what I would do is create a class/structure that holds this pointer and use this class/structure as a list item.

class FMyItem
{
	public:	
	static TSharedPtr< FMyItem> New(IFlareShipInterface* InObject)
	{
		return MakeShareable(new FMyItem(InObject));
	}
	
	private:
	FMyItem(IFlareShipInterface* InPtr) : InterfacePtr(InPtr){}
	
	IFlareShipInterface* InterfacePtr;
}

// just for shorter name
typedef TSharedPtr< FMyItem> FItemPtr;

// here goes your list source
TArray< FItemPtr> ListSource;

// list declaration
TSharedPtr< SListView<FItemPtr> >   ListView;

// OnGenerateRow that you will plug during SListView creation
TSharedRef< ITableRow> OnGenerateRow(FItemPtr Item, const TSharedRef< STableViewBase>& OwnerTable)
{
	return SNew( STableRow< FItemPtr >, OwnerTable )
			[
				...
			];
}

// and this is how you make new item and add it to the list
ListSource.Add(FMyItem::New(GetSomethingThatImplementsDesiredInterface()));

Hope this helps you somehow or will get you on the right track