Es könnte aber auch ein falsch programmierter Destruktor dahinterstecken:
Delphi-Quellcode:
destructor TMyClass.Destroy;
begin
inherited;
// Problem: nach Aufruf von inherited ist der Speicher freigegeben
// daher ist es verboten, jetzt noch damit zu arbeiten
FTimerInterval := 0;
end;
Falsch. Der Speicher von "Self" wird nicht im "inherited Destroy" freigegeben, sondern vom System._ClassDestroy, dass im "end;" stattfindet.
Delphi-Quellcode:
//Unit1.pas.55: end;
cmp byte ptr [ebp-$05],$00
jle +$08 // nur im äußersten "Destroy" ClassDestroy aufrufen
mov eax,[ebp-$04]
call @ClassDestroy
pop ecx
pop ecx
pop ebp
ret