Delphi XE6 には、TWordRec のインスタンスを保持する WordDict という TDictionary があります。定義は次のとおりです。
WordDict: TDictionary<string, TWordRec>;
...
type
TWordRec = class
public
RemoveAlways: Boolean; // Is this CORP LLC, etc?
RemoveRestricted: Boolean;
Replace: Boolean;
ReplaceWith: string;
Constructor Create(B1, B2, B3: Boolean; S1: String); overload;
end;
辞書を作成してロードすると....
WordDict := TDictionary<string, TWordRec>.Create;
WordDict.Add('CO', TWordRec.Create(True, False, False, ''));
WordDict.Add('CORP', TWordRec.Create(True, False, False, ''));
...
メモリ リークが発生しています。AQTime を使用すると、TWordRec が出現するたびにメモリが「リーク」していることがわかります。WordDict エントリを TWordRec として作成している場合、ロード後にそれらを破棄するにはどうすればよいですか? これはディクショナリ内の実際のオブジェクトへの単なるポインタではないので、それらを破棄しますか?
ロード後すぐに TWord を破棄しますか? アプリが終了したときにのみ、辞書からすべてのエントリを削除しますか? TWordRecでメモリリークが発生する理由が明らかにわからないため、解決方法がわかりません...
ありがとう!