Das Erzeugen der Streamlist sollte dort erfolgen, wo diese auch wieder freigegeben wird.
Dann kann diese auch als einfacher Parameter übergeben werden (kein var-Parameter).
Code:
StreamList := TStreamList.Create;
try
DecompressIntoStream(Stream, StreamList);
{... weiter Verwendung von StreamList}
finally
StreamList.Free;
end;
In der Funktion DecompressIntoStream am Anfang eventuell StreamList.Clear aufrufen.