2016-03-30 31 views
7

Wdrażam Windows 10 Notification w mojej aplikacji. Jednak poniższy kod (który działa dobrze) najwyraźniej dać przeciek notatki z 1 TNotification obiektów i 2 strun, ale ja uwolnić obiekt na końcu bloku:Wyciek pamięci w Windows 10 TNotification w Delphi Seattle?

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; 

robię coś głupiego czy istnieje wyciek pamięci w implementacji powiadomień?

  • Steve
+0

jaka jest wartość 'aNotification' po' NotificationCenter.PresentNotification (aNotification) '? –

+0

@HughJones 'aNotification' jest nadal przypisany po' PresentNotification' - tak dziwne. –

+0

Zrobiłem wiele księżyców Delphi temu i pamiętam, że ustawiłem rzeczy na zero ... aNotification: = zero; – KornMuffin

Odpowiedz

8

To jest rzeczywiście wyciek spowodowany TNotificationCenterDelegateActivated. W jego numerze Create jest tworzona kopia parametru TNotification, ale nigdy nie została zwolniona.

Wygląda na to, że niektórzy programiści odpowiedzialni za ten kod nie są biegli w środowiskach innych niż ARC.

+0

Dzięki za potwierdzenie. –

+0

Byłoby wspaniale dla QC to w Emba. –

+3

Naiwnie można się spodziewać, że Emba będzie mieć testy dla swoich bibliotek, które wypróżnią wycieki. Jak trudne może być? –