Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Variants wer entsorgt Speicherplatz ? (https://www.delphipraxis.net/73537-variants-wer-entsorgt-speicherplatz.html)

hanspeter 19. Jul 2006 14:36


Variants wer entsorgt Speicherplatz ?
 
Hallo eine Verständnisfrage.
In einem Com Server erzeuge ich ein variantes Array und fülle dieses:

Delphi-Quellcode:
function TebmTechnologieStack.GetData: OleVariant;
begin
  result := VarArrayCreate([0, 100], varVariant);
Im Client hole ich die Daten ab und verarbeite diese.

Delphi-Quellcode:
v := Com.GetData;
 SavetoList(PSafeArray(VarArrayAsPSafeArray(v)));
Wer gibt jetzt die dynamischen Bereiche wieder frei ?

ActiveX.SafeArrayDestroyData(PSafeArray(TVarData(v ).VArray));
ActiveX.SafeArrayDestroy(PSafeArray(TVarData(v).VA rray));

bringt einen Fehler, wenn der Zugriffsbereich der Variablen verlassen wird.
Also entweder bei Procedureende, was ja noch in Ordnung wäre, oder aber bei Programmende, wenn
es eine globale Variable war.

Der Speichermanager zeigt in keinem Fall ein Speicherleak an.

Kann ich nit der Anweisung

v : oleVariant;

.
.
.
v := unsasigned;

den Speicherbereich explizit freigeben?

Die Funktion soll eine Vielzahl von Blöcken vom Com-Server holen, ich möchte vermeiden das sich Speicher-Leaks
ansammeln.

Für einen Tip dankbar.

Gruß Peter


Alle Zeitangaben in WEZ +1. Es ist jetzt 17:36 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz