<div>In this topic BrunoK said if we add   Application.ProcessMessages;    before Driver.Free it prevents the memory leak.<br></div><div>But I want to know if this is a good solution for it and if I faced a bug.</div><div class="protonmail_signature_block protonmail_signature_block-empty"><div class="protonmail_signature_block-user protonmail_signature_block-empty"><div><br></div></div><div class="protonmail_signature_block-proton protonmail_signature_block-empty"><br></div></div><div><br></div><div>‐‐‐‐‐‐‐ Original Message ‐‐‐‐‐‐‐<br></div><div> On Tuesday, September 25, 2018 10:01 PM, Okoba <okobapatino@protonmail.com> wrote:<br></div><div> <br></div><blockquote type="cite" class="protonmail_quote"><div>Hi,<br></div><div><br></div><div>I have a memory leak problem with TFPTimer and I think I'm missing something. It happens randomly and not always.<br></div><div>Tested with Lazarus 1.8.4 and FPC 3.0.4 and FPC 3.1.1 on last updated version of Windows 10 with Debug build mode and it writes a memory leak lead to "Driver.Enabled := True;"<br></div><div>Can anyone help me?<br></div><div><br></div><div>procedure TForm1.FormCreate(Sender: TObject);<br></div><div>begin<br></div><div>  Driver := TFPTimer.Create(Self);<br></div><div>  Driver.Interval := 33;<br></div><div>  Driver.OnTimer := @DriveOnTimer;<br></div><div>  Driver.Enabled := True;<br></div><div>end;<br></div><div><br></div><div>procedure TForm1.FormDestroy(Sender: TObject);<br></div><div>begin<br></div><div>  Driver.Enabled := False;<br></div><div>  Driver.Free;<br></div><div>end;<br></div><div><br></div><div>procedure TForm1.DriveOnTimer(Sender: TObject);<br></div><div>begin<br></div><div>  Caption := TimeToStr(Now);<br></div><div>end;     <br></div><div class="protonmail_signature_block protonmail_signature_block-empty"><div class="protonmail_signature_block-user protonmail_signature_block-empty"><div><br></div></div><div class="protonmail_signature_block-proton protonmail_signature_block-empty"><br></div></div><div><br></div><div><br></div><div>Heap dump by heaptrc unit<br></div><div>974 memory blocks allocated : 1698252/1700016<br></div><div>972 memory blocks freed     : 1698116/1699880<br></div><div>2 unfreed memory blocks : 136<br></div><div>True heap size : 753664<br></div><div>True free heap : 753056<br></div><div>Should be : 753272<br></div><div>Call trace for block $00000000012AE390 size 16<br></div><div>  $0000000100010CEB<br></div><div>  $0000000100012D87<br></div><div>  $0000000100012608<br></div><div>  $000000010018985D<br></div><div>  $0000000100189C59<br></div><div>  $0000000100189622<br></div><div>  $0000000100189551<br></div><div>  $000000010003AA64 line 39 of unit1.pas<br></div><div>Call trace for block $000000000129E7B0 size 120<br></div><div>  $0000000100010C12<br></div><div>  $000000010000DF57<br></div><div>  $00000001001897FA<br></div><div>  $0000000100189C59<br></div><div>  $0000000100189622<br></div><div>  $0000000100189551<br></div><div>  $000000010003AA64 line 39 of unit1.pas<br></div><div>  $0000000100020591 line 939 of include/customform.inc<br></div></blockquote><div><br></div>