Skip to content

FastMM4 states there are memory leaks #111

@vesnx

Description

@vesnx

Hi,

Mybe I am doing it wrong but I am trying to have the logs flush and so I made a method:

implementation

uses
  Quick.Logger,
  Quick.Logger.Provider.Files,
  Quick.Logger.ExceptionHook;

procedure FinalizeLogger; stdcall;
var
  count: Integer;
begin
  Log('Logger shutdown', etInfo);
  // Force the logger to flush any buffered messages.
  if Assigned(Logger) then
  begin
    count := Logger.QueueCount;
    Log('There are %d log items in queue.', [count], etInfo);
  end;

  if Assigned(GlobalLogFileProvider) then
  begin
    GlobalLogFileProvider.Drain;
    GlobalLogFileProvider.Stop;
  end;
end;

procedure FinalizeLogger; stdcall;
var
  count: Integer;
begin
  Log('Logger shutdown', etInfo);
  // Force the logger to flush any buffered messages.
  if Assigned(Logger) then
  begin
    count := Logger.QueueCount;
    Log('There are %d log items in queue.', [count], etInfo);
  end;

  if Assigned(GlobalLogFileProvider) then
  begin
    GlobalLogFileProvider.Drain;
    GlobalLogFileProvider.Stop;
  end;

end;

In my test I initialize and Finalize the log to make sure i capture it all:

  [TestFixture]
  EncyptionTest = class
  public
      [Setup]
    procedure Setup;
    [TearDown]
    procedure TearDown;
    [Test]
    procedure DeriveKeyFromPasswordTest;
    [Test]
    procedure DeriveSameKeyFromPasswordTest;
    [Test]
    procedure RoundTripTest;
  end;

procedure EncyptionTest.Setup;
begin
        InitializeLogger;
end;

procedure EncyptionTest.TearDown;
begin
  FinalizeLogger;
end;

When the test ends I get a warning box
image

I enabled the detail logs and attached them

WalterNativeTests_MemoryManager_EventLog.txt

Am I doing something wrong, what am I missing?

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions