TParadoxDataset: Fix memory leak

git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@6898 8e941d3f-bd1b-0410-a28a-d453659cc2b4
This commit is contained in:
wp_xxyyzz
2019-05-09 20:56:40 +00:00
parent 60842879dd
commit cc2171f8cf

View File

@ -45,15 +45,15 @@ type
PLongWord = ^Longword; PLongWord = ^Longword;
{ field information record used in TPxHeader below } { field information record used in TPxHeader below }
PFldInfoRec = ^TFldInfoRec; PFldInfoRec = ^TFldInfoRec;
TFldInfoRec = packed RECORD TFldInfoRec = packed record
fType : byte; fType: byte;
fSize : byte; fSize: byte;
end; end;
PPxHeader = ^TPxHeader; PPxHeader = ^TPxHeader;
TPxHeader = packed RECORD TPxHeader = packed record
recordSize : word; recordSize : word;
headerSize : word; headerSize : word;
fileType : byte; fileType : byte;
@ -143,13 +143,13 @@ type
TParadoxDataSet = class(TDataSet) TParadoxDataSet = class(TDataSet)
private private
FActive : Boolean; FActive: Boolean;
FStream : TFileStream; FStream: TFileStream;
FFileName: TFileName; FFileName: TFileName;
FHeader : PPxHeader; FHeader: PPxHeader;
FaRecord : Longword; FaRecord: Longword;
FaBlockstart : LongInt; FaBlockstart: LongInt;
FaBlock : PDataBlock; FaBlock: PDataBlock;
FaBlockIdx: word; FaBlockIdx: word;
FBlockReaded: Boolean; FBlockReaded: Boolean;
FBookmarkOfs: LongWord; FBookmarkOfs: LongWord;
@ -348,8 +348,9 @@ begin
BindFields(FALSE); BindFields(FALSE);
if DefaultFields then // Destroy the TField if DefaultFields then // Destroy the TField
DestroyFields; DestroyFields;
Freemem(FHeader); FreeMem(FHeader);
Freemem(FaBlock); FreeMem(FaBlock);
FreeAndNil(FStream);
FHeader := nil; FHeader := nil;
FActive := False; FActive := False;
end; end;