![]() |
Memory Leak unter Windows
Hi,
es gibt ein Leak, sobald man Frames nutzt unter Windows. Der Grund liegt hier:
Delphi-Quellcode:
Da fehlt ein if ARoot = nil then exit;
unit FMX.AcceleratorKey.Win;
... procedure TWinAcceleratorKeyRegistry.RegisterReceiver(const ARoot: IRoot; const AReceiver: IAcceleratorKeyReceiver); begin if FFormRegistry = nil then FFormRegistry := TDictionary<IRoot, TAcceleratorKeyReceivers>.Create; if ARoot = nil then exit; ... Peter |
AW: Memory Leak unter Windows
ARoot wird doch vom Aufrufer übergeben. Also sollte auch der Aufrufer wieder aufräumen. Denke ich. Aber da du den Rest des Codes abgeschnitten hast, sieht man nicht, wie es weiter geht.
|
AW: Memory Leak unter Windows
if not Assigned(ARoot) then exit;
gruss |
AW: Memory Leak unter Windows
Ja, so hab ich das auch gemacht gehabt.
Delphi-Quellcode:
Das ist wohl erst seit Berlin der Fall (
procedure TWinAcceleratorKeyRegistry.RegisterReceiver(const ARoot: IRoot; const AReceiver: IAcceleratorKeyReceiver);
begin if FFormRegistry = nil then FFormRegistry := TDictionary<IRoot, TAcceleratorKeyReceivers>.Create; if not assigned(ARoot) then exit; if not FFormRegistry.ContainsKey(ARoot) then FFormRegistry.Add(ARoot, TAcceleratorKeyReceivers.Create); FFormRegistry[ARoot].RegisterReceiver(AReceiver); end; ![]() Christian |
AW: Memory Leak unter Windows
Die IDE selbst meldet das memory leak?
Kann Delphi XE8 das auch? |
AW: Memory Leak unter Windows
Zitat:
Delphi-Quellcode:
ganz vorne beim Programmstart ausführen.
ReportMemoryLeaksOnShutdown := True;
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:31 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz