mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-04-06 17:47:50 +02:00
53 lines
966 B
ObjectPascal
53 lines
966 B
ObjectPascal
{ Source provided for Free Pascal Bug Report 1658 }
|
|
{ Submitted by "Luis Castedo" on 2001-10-28 }
|
|
{ e-mail: castedo@elai.upm.es }
|
|
program Buggy;
|
|
|
|
uses
|
|
erroru,
|
|
Objects, Strings;
|
|
|
|
type
|
|
|
|
TMyStream = object(TDosStream)
|
|
m_fAutoDelete: Boolean;
|
|
destructor Done; virtual;
|
|
end;
|
|
PMyStream = ^TMyStream;
|
|
|
|
destructor TMyStream.Done;
|
|
var
|
|
strFName: String;
|
|
F : File;
|
|
begin
|
|
strFName := StrPas(FName);
|
|
inherited Done;
|
|
if not m_fAutoDelete then
|
|
Exit;
|
|
Assign(F, strFName);
|
|
Erase(F);
|
|
end;
|
|
|
|
// Global vars
|
|
var
|
|
pTempStream: PMyStream;
|
|
mem : sizeuint;
|
|
f : file;
|
|
begin
|
|
DoMem(mem);
|
|
pTempStream := nil;
|
|
pTempStream := New(PMyStream, Init('tw1658.tmp', stCreate));
|
|
if not Assigned(pTempStream) then
|
|
Halt(1);
|
|
pTempStream^.m_fAutoDelete := False;
|
|
Dispose(pTempStream, Done);
|
|
pTempStream := nil;
|
|
if DoMem(mem)<>0 then
|
|
begin
|
|
Writeln('Memory lost');
|
|
Halt(1);
|
|
end;
|
|
Assign(f,'tw1658.tmp');
|
|
Erase(f);
|
|
end.
|