Bonjour à tous,
Je reprends un projet débuté il y a quelques années pour mettre en oeuvre des améliorations. L'application est basée sur l'usage de HttpRio créé dynamiquement (sous Delphi Tokyo/VCL/Windows7).
Dans le code suivant,
fgetAllPhysicalIos et fgetAllPhysicalIosResponse sont déclarés et riServer2 est un serviceWeb crée à partir d'une entité WSDL.
avec
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 fgetAllPhysicalIos := getAllPhysicalIos.create; try try (riServer2 as ISOAPHeaders).Send(riEnteteId); fgetAllPhysicalIosResponse := riServer2.getAllPhysicalIos (fgetAllPhysicalIos); except on E: EXMLDocError do begin ...
Au moment de l'appel de getAllPhysicalIos j'ai systématiquement le défaut
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31 getAllPhysicalIos = class(TRemotable) private public constructor Create; override; published end; getAllPhysicalIosResponse = class(TRemotable) private Fdata: MimeData; public constructor Create; override; destructor Destroy; override; published property data: MimeData Index (IS_UNQL) read Fdata write Fdata; end; et MimeData = class(TRemotable) private FcontentType: contentType; FcontentType_Specified: boolean; Fdata: TByteDynArray; procedure SetcontentType(Index: Integer; const AcontentType: contentType); function contentType_Specified(Index: Integer): boolean; published property contentType: contentType Index (IS_ATTR or IS_OPTN) read FcontentType write SetcontentType stored contentType_Specified; property data: TByteDynArray Index (IS_UNQL) read Fdata write Fdata; end;
EXMLDocError : L'élément "data" ne contient pas un noeud texte unique alors que la réponse (stream) est correct et complète.
et une fuite mémoire liée à la non destruction certains objets (getPhysicalIoResponse et le Mimedata) :
Je ne trouve pas de solution gérer le MimeData (probablement la cause du défaut et de la fuite mémoire).
Merci pour votre aide,
Partager