Nein, denn
QC 44634 wurde in XE offenbar durch den Fix für
QC 77903 behoben und in einigen Tagen wird
QC den Status sicher entsprechend anzeigen.
Tja, kann ich nur sagen, dann haben sie es nicht richtig gefixt.
Boom:
Delphi-Quellcode:
program Project1;
{$APPTYPE CONSOLE}
type
TRecord2 = record
FIntf: IInterface;
end;
TRecord1 = record
FRecord2: TRecord2;
function Foo: string;
end;
function Get: TRecord1;
begin
Result.FRecord2.FIntf := TInterfacedObject.Create;
end;
function TRecord1.Foo: string;
begin
Result := '';
end;
begin
ReportMemoryLeaksOnShutdown := True;
Get.Foo;
end.
Genau das passiert nämlich im Fall von TValue. Dort gibts intern das Feld FData vom Typ TValueData, worin wiederum eine Interface Referenz (IValueData) gespeichert wird. Daher auch der Memleak des TValueDataImpl Objektes.