AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

TRegistry verursacht Memory Leaks?

Ein Thema von blackdrake · begonnen am 5. Sep 2007 · letzter Beitrag vom 5. Sep 2007
 
blackdrake

Registriert seit: 21. Aug 2003
Ort: Bammental
618 Beiträge
 
Delphi 10.3 Rio
 
#1

TRegistry verursacht Memory Leaks?

  Alt 5. Sep 2007, 15:00
Hallo.

Ich will mal nicht gleich behaupten, dass es eine Fehlfunktion ist, doch ich glaube einen Memory Leak bei TRegistry gefunden zu haben. Das Problem besteht bei allen mir bekannten Delphi Versionen.

Folgender Code:

Delphi-Quellcode:
uses
  Registry;

procedure TForm1.Button1Click(Sender: TObject);
var
  reg: tregistry;
begin
  reg := tregistry.create;
  try
    reg.RootKey := HKEY_LOCAL_MACHINE;

    // Abfrage von nicht existierenden Schlüsseln, z.B.
    // SOFTWARE_X, führt bei allen Delphi Versionen
    // laut MemProof zu einem Memory Leak, da
    // auf RegOpenKeyEx kein RegCloseKey folgt.

    reg.KeyExists('SOFTWARE');
    reg.KeyExists('SOFTWARE_X');
    reg.OpenKeyReadOnly('SOFTWARE');
    reg.CloseKey;
    reg.OpenKeyReadOnly('SOFTWARE_X');
    reg.CloseKey; // Ich führe CloseKey in diesem Test auch aus, wenn OpenKeyReadOnly fehlschlägt
  finally
    reg.free;
  end;
end;
Und das sagt MemProof:

Delphi-Quellcode:
ERROR

711 RegOpenKeyEx(-2147483646,"SOFTWARE_X",0,131081,0): Das System kann di
RegOpenKeyEx opens the specified registry key.
The returned key handle must be closed with RegCloseKey when no longer needed.

713 RegOpenKeyEx(-2147483646,"SOFTWARE_X",0,131097,0): Das System kann di
RegOpenKeyEx opens the specified registry key.
The returned key handle must be closed with RegCloseKey when no longer needed.

714 RegOpenKeyEx(-2147483646,"SOFTWARE_X",0,1310811,0): Das System kann di
RegOpenKeyEx opens the specified registry key.
The returned key handle must be closed with RegCloseKey when no longer needed.

715 RegOpenKeyEx(-2147483646,"SOFTWARE_X",0,1,0): Das System kann die ang
RegOpenKeyEx opens the specified registry key.
The returned key handle must be closed with RegCloseKey when no longer needed.
Mach ich hier was falsch?

Gruß
blackdrake
Daniel Marschall
  Mit Zitat antworten Zitat
 


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 06:15 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