Einzelnen Beitrag anzeigen

Mattze

Registriert seit: 6. Jan 2005
664 Beiträge
 
#13

Re: JVHIDControllerClass mit Speicherlecks?

  Alt 8. Mär 2009, 09:13
Hallo und guten Morgen,

komisch, aber wahr. Eigentlich wollte ich vor dem Aufstehen nur noch schnell die Umgebung zum Testen fertig machen. Beim Öffnen bin ich genau da gelandet, wo ich schon einen Befehl eingebaut, aber wegen akuten Zeitmangels erst mal wieder auskommentiert hatte.
Diesmal habe ich ihn versucht und es klappte sofort alles!
Ich habe es mit der UsagesDemo und einem Programm von mir, wo ich das HID eingebaut hatte, getestet. Bisher kein Fehler...
Also, bei mir klappt es jetzt.
Wie gleich zu Anfang vermutet, lag es an der fehlenden Freigabe von FPnpInfo in TJvHidDeviceController.Destroy in der Unit JvHidControllerClass.

Genauer:
Delphi-Quellcode:
destructor TJvHidDeviceController.Destroy;
var
  I: Integer;
  HidDev: TJvHidDevice;
begin

(...)

  for I := 0 to FList.Count - 1 do
  begin
    HidDev := FList.Items[I];
    with HidDev do
    begin
      // set to uncontrolled
      FMyController := nil;
//hier muss das dazu kommen:
      FPnpInfo.Free;
      if IsCheckedOut then
        DoUnplug // pull the plug for checked out TJvHidDevices
      else
        Free; // kill TJvHidDevices which are not checked out
    end;
  end;
  FList.Free

(...)

  inherited Destroy;
end;
Gruß
Mattze
  Mit Zitat antworten Zitat