Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Bug beim Memory-Management von WideStrings? (https://www.delphipraxis.net/45096-bug-beim-memory-management-von-widestrings.html)

Bernhard Geyer 29. Apr 2005 15:21


Bug beim Memory-Management von WideStrings?
 
Folgender Code führt bei der Widestring-Version zu einer Änderung des const-Parameters in der Funktion beim ersten Aufruf der Copy-Funktion.

Delphi-Quellcode:
procedure DoVarConstBug(var Param1, Param2: String; const Value: String); overload;
begin
  Param1 := '';
  Param2 := '';
  if 0 < Pos( '.', Value) then
  begin
    Param1 := Copy( Value, 1, Pos( '.', Value)-1);
    Param2 := Copy( Value, Pos( '.', Value)+1, Length( Value));
  end;
end;

procedure DoVarConstBug(var Param1, Param2: WideString; const Value: WideString); overload;
begin
  Param1 := '';
  Param2 := '';
  if 0 < Pos( '.', Value) then
  begin
    Param1 := Copy( Value, 1, Pos( '.', Value)-1);
    Param2 := Copy( Value, Pos( '.', Value)+1, Length( Value));
  end;
end;

procedure TForm1.Button1Click(Sender: TObject);
var
  Str, Str2: String;
  wStr, wStr2: WideString;
begin
  str := 'Teil-1.Teil-2';
  DoVarConstBug(Str2, Str, Str);

  wStr := 'Teil-1.Teil-2';
  DoVarConstBug(wStr2, wStr, wStr);
  ShowMessage(Format('String: %s <-> WideString: %s', [Str, wStr]));
end;

jbg 29. Apr 2005 15:29

Re: Bug beim Memory-Management von WideStrings?
 
Der fehler ist altbekannt und existiert schon seit Delphi 5. Soll aber im Delphi 2005 Update 2 behoben sein, dass nur die, die eine Englische Version haben, installieren können.

Bernhard Geyer 29. Apr 2005 15:40

Re: Bug beim Memory-Management von WideStrings?
 
Hast Du auch Links zu diesem Fehler oder eine Quality-Central-ID?
Mir war dieser Fehler unbekannt.


Alle Zeitangaben in WEZ +1. Es ist jetzt 14:35 Uhr.

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