AGB  ·  Datenschutz  ·  Impressum  







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

AnsiString Memory Leak in array of const

Ein Thema von raphaelm · begonnen am 15. Okt 2009 · letzter Beitrag vom 15. Okt 2009
Antwort Antwort
raphaelm

Registriert seit: 11. Okt 2006
23 Beiträge
 
#1

AnsiString Memory Leak in array of const

  Alt 15. Okt 2009, 11:02
Ich benutze in einer Prozedur als Übergabeparameter ein array of const. Hier muss allerdings ein Leck sein.

Delphi-Quellcode:
procedure test(const A: array of const);
var hlp : string;
Delphi-Quellcode:
...
for i := Low(A) to High(A) do begin
  hlp := '';
  with A[i] do
    case VType of
       vtChar: hlp := string(vChar);
       vtExtended: str(vExtended^: 12: 2, hlp);
       vtInteger: hlp := format('%d', [VInteger]);
       vtAnsiString: hlp := String(vAnsiString); // Hier müsste der Fehler sein
       vtstring: hlp := (vstring^);
    end;
  end;
end;
...
Wenn ich
 vtAnsiString: hlp := trim(String(vAnsiString)); benutze, funktioniert es, allerdings sollen die Leerzeichen nicht abgeschnitten werden.

Kann mir jemand auf die Sprünge helfen was hier falsch läuft?
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.152 Beiträge
 
Delphi 12 Athens
 
#2

Re: AnsiString Memory Leak in array of const

  Alt 15. Okt 2009, 11:45
also bei mir geht dein Code,

allerdings solltest du lieber AnsiString verwenden,
vorallem wenn du Delphi2009/2010 verwendest.
vtAnsiString: hlp := AnsiString(vAnsiString);
Zitat:
Hier muss allerdings ein Leck sein
Wieso ein Leck?

Und vorallem WAS funktioniert nicht?
Tut mir ja leid, aber ich kann mir bei bestem Willen nicht vorstellen was bei dir passiert.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
Benutzerbild von Sherlock
Sherlock

Registriert seit: 10. Jan 2006
Ort: Offenbach
3.763 Beiträge
 
Delphi 11 Alexandria
 
#3

Re: AnsiString Memory Leak in array of const

  Alt 15. Okt 2009, 11:49
Wer behauptet eigentlich, daß da ein Memory-Leak sein soll?



Sherlock
Oliver
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.152 Beiträge
 
Delphi 12 Athens
 
#4

Re: AnsiString Memory Leak in array of const

  Alt 15. Okt 2009, 11:54
Zitat von Sherlock:
Wer behauptet eigentlich, daß da ein Memory-Leak sein soll?
keine Ahnung, aber von Memory war hier doch noch nirgendwo die Rede
ups, den Titel hatte ich doch glatt wieder vergessen
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
Benutzerbild von Sherlock
Sherlock

Registriert seit: 10. Jan 2006
Ort: Offenbach
3.763 Beiträge
 
Delphi 11 Alexandria
 
#5

Re: AnsiString Memory Leak in array of const

  Alt 15. Okt 2009, 12:01
Zumindest im Titel. Oder nicht?

OT zu Himitus Signatur:
Zitat:
kräbmtleenauanr vlzelehion raütlrtäoscwkss etlnuieaesrwsirhce uchnlnasnlaegt
Na, kann man das wirklich lesen?

Sherlock
Oliver
  Mit Zitat antworten Zitat
raphaelm

Registriert seit: 11. Okt 2006
23 Beiträge
 
#6

Re: AnsiString Memory Leak in array of const

  Alt 15. Okt 2009, 12:21
Sorry für die schlechte Beschreibung. Das mit dem Memory Leak war meine Vermutung.
Nochmal ergänzend, im Prinzip läuft das alles. Die Prozedur wird ausgeführt, nur beim Schließen der Form geht das CPU Fenster in der Delphi IDE auf bzw. das Programm verabschiedet sich. Wenn ich das Trim benutze funktioniert es ohne Fehler, deshalb meine Vermutung das es an der AnsiString Umwandlung liegt.

Ich habe mir grade ein Testprogramm mit festen Parametern geschrieben, da funktioniert es auch ohne Trim. Also wirds wohl an den Parametern liegen
  Mit Zitat antworten Zitat
raphaelm

Registriert seit: 11. Okt 2006
23 Beiträge
 
#7

Re: AnsiString Memory Leak in array of const

  Alt 15. Okt 2009, 12:44
ok ... der fehler hat seinen ursprung wahrscheinlich wo ganz anders brainbug meinerseits
  Mit Zitat antworten Zitat
Benutzerbild von Sherlock
Sherlock

Registriert seit: 10. Jan 2006
Ort: Offenbach
3.763 Beiträge
 
Delphi 11 Alexandria
 
#8

Re: AnsiString Memory Leak in array of const

  Alt 15. Okt 2009, 13:00
Weisst Du eigentlich was ein Memoryleak ist?
Sowas führt nicht unbedingt zu Fehlern zur Laufzeit, nur wenn Speicherlecks vermehrt auftreten und auch groß sind, bekommt die Applikation irgendwann Atemnot. Ein Speicherleck findet für gewöhnlich auch nicht Delphi von alleine, sondern nur mit Hilfe von außen, FastMM zum Beispiel wäre so eine Hilfe.

Aber gut, daß Du das Problem lösen konntest, der Lösungsweg würde im übrigen den Thread noch die Krone aufsetzen.

Sherlock
Oliver
  Mit Zitat antworten Zitat
Assertor

Registriert seit: 4. Feb 2006
Ort: Hamburg
1.296 Beiträge
 
Turbo C++
 
#9

Re: AnsiString Memory Leak in array of const

  Alt 15. Okt 2009, 13:26
OT:

Zitat von Sherlock:
OT zu Himitus Signatur:
Zitat:
kräbmtleenauanr vlzelehion raütlrtäoscwkss etlnuieaesrwsirhce uchnlnasnlaegt
Na, kann man das wirklich lesen?
Geht so. Entdreht ergibt es aber auch nicht viel mehr Sinn
Zitat:
klabautermänner vollziehen rückwärtssaltos erstaunlicherweise unangeschnallt
Gruß Assertor
Frederik
  Mit Zitat antworten Zitat
Antwort Antwort


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 20:52 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