Einzelnen Beitrag anzeigen

markusj

Registriert seit: 9. Dez 2005
Ort: Kandel
408 Beiträge
 
#1

[FIXED] Streams & Speicherleck

  Alt 25. Feb 2006, 20:12
Hallo @ all,

ich arbeite zur Zeit an einem sehr Umfangreichen Projekt und habe ein kleines Problem:

In einer Unit, Variables, habe ich sämtliche Globale Variablen gespeichert, darunter auch 3 MemoryStreams.
Im Laufe des Programms werden diese Mehrfach mit *.Free und *:=TMemoryStream.Create frisch erzeugt.
Dabei entsteht jedoch, laut MemCheck ein Speicherloch, ich habe allerdings keine Ahnung warum.
Ich bin ein etwas *komischer* programmiere, ich hab einigermaßen Ahnung, aber dann doch wieder nicht, sprich ich arbeite mit einer Materie die mir Fremd ist, also bitte nicht hauen *au*.

Kleines Beispiel:

Delphi-Quellcode:
unit Variables
...
...
var teststream : TMemoryStream
...
...
Delphi-Quellcode:
unit testunit
...
...
procedure test
var testbyte : byte;
begin
Variables.teststream := TMemoryStream.Create;
testbyte := 255;
Variables.teststream.write(testbyte,1);
Variables.teststream.Free;
end;
Diese Prozedur Test wird mehrfach aufgerufen und produziert ab dem 2. Aufruf ein Speicherleck.

Jetzt die Frage an euch:
1. Warum gibts hier ein Leck?
2. Wie kann ich meinen Stream recyclen?

Vielen Dank schon im voraus,

Markus
Markus
  Mit Zitat antworten Zitat