Einzelnen Beitrag anzeigen

Benutzerbild von Stevie
Stevie

Registriert seit: 12. Aug 2003
Ort: Soest
4.009 Beiträge
 
Delphi 10.1 Berlin Enterprise
 
#10

AW: record fillchar Speicherleck

  Alt 17. Apr 2014, 13:14
Gute Idee. Aber, ich hab gerade in der Hilfe gestöbert, was ist mit solchen Records:
Delphi-Quellcode:
record
  Name : string;
  Vorname : string;
  Geburtstag : tdatetime;
  Kenner : array [0..8] of char;
  GenommeneUrlaubstage : byte;
end;
werden Geburtstag,Kenner und GenommeneUrlaubstage genullt oder nicht?
Ja, Default macht nix anderes, als zusätzlich noch FinalizeRecord aufzurufen, wenn managed Fields vorhanden sind.

Hier mal der Auszug aus dem assembler code:
Code:
006494C5 8D45D0           lea eax,[ebp-$30]
006494C8 8B15E8936400     mov edx,[$006493e8]
006494CE E809EEDBFF      call @FinalizeRecord
006494D3 8BF8             mov edi,eax
006494D5 33C0             xor eax,eax
006494D7 B90A000000       mov ecx,$0000000a
006494DC F3AB            rep stosd
Die Funktion gibts seit Generics, damit man in generischem Code ein leeres Element von irgendeinem Typ erzeugen kann (Default(T)).
Lässt sich aber ebend auch prima in nicht generischem Code benutzen.
Stefan
“Simplicity, carried to the extreme, becomes elegance.” Jon Franklin

Delphi Sorcery - DSharp - Spring4D - TestInsight

Geändert von Stevie (17. Apr 2014 um 13:23 Uhr)
  Mit Zitat antworten Zitat