Thema: Delphi GraphicEx und P(E)NG!

Einzelnen Beitrag anzeigen

Benutzerbild von Gausi
Gausi

Registriert seit: 17. Jul 2005
847 Beiträge
 
Delphi 11 Alexandria
 
#2

Re: GraphicEx und P(E)NG!

  Alt 1. Feb 2009, 11:13
Die Methode hat da ein Memoryleak. Wenn man was googelt, findet man die Lösung:

Füge in der Methode TPNGGraphic.LoadFromStream(Stream: TStream); ungefähr in Zeile 6985 ein FreeMem(FRawBuffer); ein - unmittelbar vor FRawBuffer := nil;

Delphi-Quellcode:
// ...
      FPalette := 0;
      FTransparency := nil;
      FBackgroundColor := clWhite;
      FTransparentColor := clNone;

      // first chunk must be an IHDR chunk
      FCurrentCRC := LoadAndSwapHeader;

!!!! FreeMem(FRawBuffer);
      FRawBuffer := nil;
      ColorManager.SourceOptions := [coNeedByteSwap];
      try
        // read IHDR chunk
        ReadDataAndCheckCRC;
        Move(FRawBuffer^, Description, SizeOf(Description));
// ...
The angels have the phone box.
  Mit Zitat antworten Zitat