Die Meldung.
Zitat:
--------------------------------------------------------------------------------------------------------------------------------------
|Methods |Details|Stack |Address |Module |Offset |
Unit |Class |Procedure/Method |Line |
--------------------------------------------------------------------------------------------------------------------------------------
|+Leak #1: Type=UnicodeString: Ref count - 1, Content: "'WARNING: DO NOT CHANGE THE ORDER OF THE PROPERTIES!"; Total size=118; Count=1|
|------------------------------------------------------------------------------------------------------------------------------------|
|00000002|03 |00000000|005E8586|SK_Aero.dll |00008586|System | |InternalUStrFromPCharLen | |
|00000002|04 |00000000|0082C55B|SK_Aero.dll |0024C55B|uSkinConfig|TSkinConfig|FBuffin |976[12] |
|00000002|04 |00000000|0082ABEF|SK_Aero.dll |0024ABEF|uSkinConfig|TSkinConfig|GetConfiguration |308[5] |
|00000002|04 |00000000|008234C4|SK_Aero.dll |002434C4|uSkin |TSkinEngine|InitSkin |644[25] |
|00000002|04 |00000000|00833E1B|SK_Aero.dll |00253E1B|uMaster | |SKAERO_InitSkin |806[4] |
|00000002|03 |00000000|75213366|kernel32.dll|00013366|kernel32 | |BaseThreadInitThunk | |
|00000002|03 |00000000|77019900|ntdll.dll |00039900|ntdll | | (possible RtlInitializeExceptionChain+97)| |
|00000002|03 |00000000|770198CE|ntdll.dll |000398CE|ntdll | | (possible RtlInitializeExceptionChain+47)| |
|------------------------------------------------------------------------------------------------------------------------------------|
Wie soll ich das jetzt interpretieren?
Wo oder was ist der Leak UnicodeString?
Aber wie soll dieser entstehen wenn ich doch die Classe beim beenden freigebe?
Delphi-Quellcode:
destructor TSkinEngine.Destroy;
begin
if Assigned(SkinConfig) then
SkinConfig.free;
SkinLoaded := False;
SkinEngine := nil;
inherited;
end;
Noch mehr kann ich nicht tun.
Und hier wird das File geschlossen.
Delphi-Quellcode:
procedure TSkinConfig.FBuffin(FileName:
string);
var
sBuffer:
string;
begin
if not FExist(FileName)
then
Exit;
Assignfile(ParseFile, FileName);
reset(ParseFile);
try
try
while not eof(ParseFile)
do
begin
ReadLN(ParseFile, sBuffer);
AppendToLinkedList(nReading, sBuffer);
inc(nReading);
end;
except
raise Exception.Create(SysErrorMessage(GetLastError));
end;
finally
nReading := 0;
sBuffer := '
';
CloseFile(ParseFile);
end;
end;
noch bevor die Anwendung beendet wird.
Was will er mir jetzt mit dem FBuffin sagen?
EDIT:
Dieser string wird aus der Textdatei geladen
'WARNING: bla, bla!"
Nun die Datei wird ordnungsgemäß geschlossen und die Classe freigegeben verstehe wer will.
Der String existiert doch dann gar nicht mehr.
gruss