Download

UPanelWidget::RemoveChildAt would cause memory leak.

bool UPanelWidget::RemoveChildAt(int32 Index)
{
if ( Index < 0 || Index >= Slots.Num() )
{
return false;
}

	UPanelSlot* Slot = Slots[Index];
	if ( Slot-&gt;Content )
	{
		Slot-&gt;Content-&gt;Slot = nullptr;
	}

	Slots.RemoveAt(Index);

	OnSlotRemoved(Slot);

	Slot-&gt;Parent = nullptr;
	Slot-&gt;Content = nullptr;

	const bool bReleaseChildren = true;
	Slot-&gt;ReleaseSlateResources(bReleaseChildren);

	return true;
}

since Slot->Content already being set to nullptr. SlotSlot->ReleaseSlateResources(bReleaseChildren) actually do nothing. I think it should put right after UPanelSlot* Slot = Slots[Index]; …