根据Fast MM4, 我目前正在做的戴尔菲计划 正在泄漏许多字符串。 AnsiStrings to certainly:
""https://i.sstatic.net/287c9.png" alt="此处输入图像描述"/"
该应用程序("http://sourceforge.net/projects/orwelldevcpp/" rel="noreferrer" >http://sourceforge.net/projects/orwelldevcpp/ )用来泄漏更多其他类型的数据,但FastMM4可以报告创建实例的地点,所以我设法解决了这个问题。奇怪的是,FastMMM4没有报告这些泄漏的地点。
“强势”编辑:看来它毕竟确实如此,看到解决问题的答案。不管怎样,问题仍然存在:我到底怎么泄露这些东西?强”
所以,嗯,很不幸,我不知道该找什么。我的意思是,如果这些事情超出范围,就应该自动释放它们的权利(即使它们在堆积物上)?
我设法通过随机评论 追踪了几处漏水 并观察了计数结果
// simply passing it a constant creates a leak...
MainForm.UpdateSplash( Creating extra dialogs... );
procedure TMainForm.UpdateSplash(const text : AnsiString);
begin
if not devData.NoSplashScreen then // even if this branch is NOT taken
SplashForm.Statusbar.SimpleText := blablabla + text;
end;
// And even if the function call itself is placed within a NOT taken branch!
以下是另一个泄漏的例子:
// Passing this constants produces leaks...
procedure TCodeInsList.AddItemByValues(const a, b, c: AnsiString;...);
var
assembleditem : PCodeIns;
begin
new(assembleditem);
assembleditem^.Caption:=a;
assembleditem^.Line:=b;
assembleditem^.Desc:=c;
...
fList.Add(assembleditem);
end;
// ... even when calling this on WM_DESTROY!
destructor TCodeInsList.Destroy;
var
I: integer;
begin
for I := 0 to fList.Count - 1 do
Dispose(fList[I]);
fList.Free;
inherited Destroy;
end;
// produces leaks!?
这里有很多串漏漏密问题, 但没有任何问题能真正澄清“ 坚固” 的图案。 Google 也没有提供 。
<强力 > 编辑 : 所以, 我必须寻找通过常数。 但是为什么? 强 >
<% 1⁄4 ̄ ̧漯B/% 1⁄4 ̄ ̧漯B