8

I'm implementing Windows 10 Notification in my application. However, the code below (which runs fine) apparently give a memo leak of 1 TNotification object and 2 strings, yet I free the object at the end of the block:

aNotification := NotificationCenter.CreateNotification;

//-- If not assigned then must be Win 8.1 or below
if not assigned(aNotification) then
  exit;

try
  aNotification.Title := AlignMixVersionName + ' License';
  aNotification.AlertBody := aText;

  NotificationCenter.PresentNotification(aNotification);

finally
  aNotification.Free;
end;

Am I doing something stupid or is there a memory leak in the implementation of Notifications?

  • Steve
Danilo Casa
  • 505
  • 1
  • 9
  • 16
Steve Maughan
  • 1,014
  • 2
  • 14
  • 29

1 Answers1

8

It is indeed a leak caused by TNotificationCenterDelegateActivated. In its Create a copy of the TNotification parameter is created, but never freed.

Seems like some developers responsible for this code are not that proficient with non-ARC environments.

Uwe Raabe
  • 39,888
  • 3
  • 77
  • 115