Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Speicherleck in System.SysUtils.TStringHelper.PadLeft und .PadRight (https://www.delphipraxis.net/210569-speicherleck-system-sysutils-tstringhelper-padleft-und-padright.html)

Andreas13 12. Mai 2022 17:16

Speicherleck in System.SysUtils.TStringHelper.PadLeft und .PadRight
 
Liste der Anhänge anzeigen (Anzahl: 1)
Hallo Community,
es nervt mich schon sehr lange, aber heute frage ich auch mal Euch:
Delphi-Quellcode:
uses
  System.SysUtils;

VAR
  i: Integer;

Begin
  ReportMemoryLeaksOnShutdown:= True;

  For i:= 1 To 15 Do
  Begin
    // WriteLn('i = ', i.ToString);            // KEIN Speicherleck
    // WriteLn('i = ', i.ToString.PadRight(2)); // Speicherleck!!
    WriteLn('i = ', i.ToString.PadLeft(2));    // Speicherleck!!
  End;
Nicht nur
Delphi-Quellcode:
ReportMemoryLeaksOnShutdown:= True;
, sondern auch madExcept meldet Speicherleck (s. Bild). Daher benutze ich diese Routinen nicht, sondern selbstgebastelte. :(
Ist der Fehler nur bei mir (XE5) oder besteht der immer noch?
Danke & Gruß
Andreas

Uwe Raabe 12. Mai 2022 17:28

AW: Speicherleck in System.SysUtils.TStringHelper.PadLeft und .PadRight
 
Bei Delphi 11 kommt kein Speicherleck.

Stevie 13. Mai 2022 11:11

AW: Speicherleck in System.SysUtils.TStringHelper.PadLeft und .PadRight
 
Ja, reproduzierbar bis einschließlich Delphi 10.1 - allerdings nur, wenn der Code direkt in der dpr main steht.
Schaut nach ner nicht korrekt finalisierten impliziten globalen Variable aus (die der Compiler für die Rückgabe von entweder ToString oder PadLeft erzeugt).


Alle Zeitangaben in WEZ +1. Es ist jetzt 04:33 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