Bonjour à tous,
J’ai un petit souci de fuite mémoire dans un projet lors de la sérialisation/désérialisation de mes classes en JSON.
J’ai résumé au plus court le problème, et j’aimerais savoir si je n’ai pas omis quelque chose ou si je n’y ai, au final, rien entendu ?
Les unités ajoutées
La classe traitée :
Code : Sélectionner tout - Visualiser dans une fenêtre à part Uses Data.DBXJSONReflect;
Et la méthode où j'utilise le marshaling pour transformer une instance de la classe TUser en chaîne JSON.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 type TUser = class public Name: string; constructor Create; end; . constructor TUser.Create; begin Name := 'Maxi'; end;
Lors de la fermeture de l'application on peut constater une fuite mémoire.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 procedure TForm1.DoTest; begin ReportMemoryLeaksOnShutdown := true; var JSONMarshal : TJSONMarshal := TJSONMarshal.Create(TJSONConverter.Create); var User: TUser := TUser.Create; try ShowMessage( JSONMarshal.Marshal(User).ToString ); <-- problème ici finally User.Free; JSONMarshal.free; end; end;
Je ne vois pas comment corriger ce problème. Pourriez-vous me suggérer des pistes ?
Partager