Delphi-PRAXiS
Seite 3 von 3     123   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Memory Leak in einer TStringList (https://www.delphipraxis.net/138398-memory-leak-einer-tstringlist.html)

himitsu 10. Aug 2009 21:50

Re: Memory Leak in einer TStringList
 
wenn diese Stringlist nur einmal (z.B. bei Programmstart) erzeugt wird, dann fällt es ja nicht so auf, vorallem da WinNT ja nach Programmende die Programmresourcen wieder freigibt (in Win9x hätte sich das angesamelt)

alzaimar 11. Aug 2009 16:45

Re: Memory Leak in einer TStringList
 
Zitat:

Zitat von Chemiker
ich kann nichts erkennen.

Was steht denn in der Datei "IB_Services.pas" in Zeile 699, also im Konstruktor der Klasse TpFIBCustomService?

hoika 11. Aug 2009 17:37

Re: Memory Leak in einer TStringList
 
Hallo,

da steht

Delphi-Quellcode:
FParams := TStringList.Create;
Kann es sein, dass die sowas schreibst wie

Delphi-Quellcode:
.Params:= MyStringList
?, statt etwas per Add oder Assign (?) zu setzen


Heiko

alzaimar 12. Aug 2009 08:12

Re: Memory Leak in einer TStringList
 
Das wäre aber ein schwerer Fehler in der IB_Services.Pas.

Schau Dir den Setter der Eigenschaft 'Params' bzw. stelle sicher, das dort 'Assign' aufrufst.
Delphi-Quellcode:
Procedure TpFIBCustomService.SetParams(Const Value : TStrings);
Begin
  If Not Assigned (FParams) Then   // Derzeit überflüssig, aber sischer-is-sischer
    FParams := TStringList.Create;
  If Assigned (Value) Then
    FParams.Assign (Value)
  Else
    FParams.Clear // Oder Exceptionbehandlung, das Value nicht NIL sein darf
End;

dataspider 12. Aug 2009 08:54

Re: Memory Leak in einer TStringList
 
Hi,

@Chemiker
Hast du eine ältere Version von FibPlus?

In der Version 6.9.5 [EDIT]Zahlendreher[/EDIT] gab es nämlich ein Fix: (Potential memory leak on using services has been fixed.)

Frank

hoika 12. Aug 2009 09:41

Re: Memory Leak in einer TStringList
 
Hallo,

also in der 6.8.5 steht Assign drin.


Heiko

Chemiker 12. Aug 2009 20:26

Re: Memory Leak in einer TStringList
 
Hallo,

@hoika: Liegt das Problem an FibPlus, oder an meinem Programm? Ich werde aus Deinem Beitrag #23 nicht ganz schlau.

@alzaimar: Wie bereits hoika geschrieben hat steht dort:
Delphi-Quellcode:
procedure TpFIBCustomService.SetParams(const Value: TStrings);
begin
  FParams.Assign(Value);
end;
@dataspider: die Version 6.8.5 ist im Einsatz. Werde das morgen mal auf einen anderen Rechner überprüfen, dort läuft die Version 6.9.5. (allerdings unter Vista).

Bis bald Chemiker

hoika 13. Aug 2009 07:20

Re: Memory Leak in einer TStringList
 
Haölo,

ich denke, liegt an dir ;)
Ich nutze auch die 6.8.5, allerdings nicht als Service.
MemCheck zeigt mir keine Fehler.

Aber sag Bescheid, einen Dienst muss ich demnächst auch machen.


Heiko

alzaimar 13. Aug 2009 08:36

Re: Memory Leak in einer TStringList
 
Wenn es nur dieses eine Leck gibt, dann erinnert mich das an die Indies, die auch so ein Leck haben, nur weil sie zu faul sind, beim Programmende ordendlich aufzuräumen.


Alle Zeitangaben in WEZ +1. Es ist jetzt 03:58 Uhr.
Seite 3 von 3     123   

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