mirror of
https://gitlab.com/freepascal.org/lazarus/lazarus.git
synced 2025-11-23 21:19:35 +01:00
fix mem leak in win32 unicode openfile dialog
git-svn-id: trunk@12912 -
This commit is contained in:
parent
48d0717fa1
commit
bc6dd44a80
@ -362,7 +362,8 @@ begin
|
|||||||
|
|
||||||
if Length(FileNameWide) > FileNameBufferLen then
|
if Length(FileNameWide) > FileNameBufferLen then
|
||||||
FileNameBufferSize := FileNameBufferLen
|
FileNameBufferSize := FileNameBufferLen
|
||||||
else FileNameBufferSize := Length(FileNameWide);
|
else
|
||||||
|
FileNameBufferSize := Length(FileNameWide);
|
||||||
|
|
||||||
Move(FileNameWide[1], FileNameWideBuffer^, FileNameBufferSize * 2);
|
Move(FileNameWide[1], FileNameWideBuffer^, FileNameBufferSize * 2);
|
||||||
end
|
end
|
||||||
@ -409,7 +410,7 @@ begin
|
|||||||
lpStrFilter := StrAlloc(Length(Filter)+1);
|
lpStrFilter := StrAlloc(Length(Filter)+1);
|
||||||
StrPCopy(lpStrFilter, Utf8ToAnsi(Filter));
|
StrPCopy(lpStrFilter, Utf8ToAnsi(Filter));
|
||||||
|
|
||||||
lpStrTitle := StrAlloc(Length(AOpenDialog.Title)+1);
|
lpStrTitle := GetMem(Length(AOpenDialog.Title)+1);
|
||||||
StrPCopy(lpStrTitle, Utf8ToAnsi(AOpenDialog.Title));
|
StrPCopy(lpStrTitle, Utf8ToAnsi(AOpenDialog.Title));
|
||||||
end;
|
end;
|
||||||
{$else}
|
{$else}
|
||||||
@ -418,7 +419,8 @@ begin
|
|||||||
lpStrFilter := StrAlloc(Length(Filter)+1);
|
lpStrFilter := StrAlloc(Length(Filter)+1);
|
||||||
StrPCopy(lpStrFilter, Filter);
|
StrPCopy(lpStrFilter, Filter);
|
||||||
|
|
||||||
lpStrTitle := PChar(AOpenDialog.Title);
|
lpStrTitle := GetMem(Length(AOpenDialog.Title)+1);
|
||||||
|
StrPCopy(lpStrTitle, AOpenDialog.Title);
|
||||||
{$endif}
|
{$endif}
|
||||||
|
|
||||||
lpStrInitialDir := PChar(InitialDir);
|
lpStrInitialDir := PChar(InitialDir);
|
||||||
@ -592,13 +594,12 @@ begin
|
|||||||
FreeMem(OpenFile^.lpStrFilter)
|
FreeMem(OpenFile^.lpStrFilter)
|
||||||
else
|
else
|
||||||
StrDispose(OpenFile^.lpStrFilter);
|
StrDispose(OpenFile^.lpStrFilter);
|
||||||
|
|
||||||
FreeMem(OpenFile^.lpStrTitle);
|
|
||||||
{$else}
|
{$else}
|
||||||
StrDispose(OpenFile^.lpStrFilter);
|
StrDispose(OpenFile^.lpStrFilter);
|
||||||
{$endif}
|
{$endif}
|
||||||
|
|
||||||
FreeMem(OpenFile^.lpStrFile);
|
FreeMem(OpenFile^.lpStrFile);
|
||||||
|
FreeMem(OpenFile^.lpStrTitle);
|
||||||
FreeMem(OpenFile);
|
FreeMem(OpenFile);
|
||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
@ -639,13 +640,16 @@ begin
|
|||||||
Dispose(POpenFileDialogRec(OPENFILE^.lCustData));
|
Dispose(POpenFileDialogRec(OPENFILE^.lCustData));
|
||||||
|
|
||||||
{$ifdef WindowsUnicodeSupport}
|
{$ifdef WindowsUnicodeSupport}
|
||||||
if UnicodeEnabledOS then FreeMem(OpenFile^.lpStrFilter)
|
if UnicodeEnabledOS then
|
||||||
else StrDispose(OpenFile^.lpStrFilter);
|
FreeMem(OpenFile^.lpStrFilter)
|
||||||
|
else
|
||||||
|
StrDispose(OpenFile^.lpStrFilter);
|
||||||
{$else}
|
{$else}
|
||||||
StrDispose(OpenFile^.lpStrFilter);
|
StrDispose(OpenFile^.lpStrFilter);
|
||||||
{$endif}
|
{$endif}
|
||||||
|
|
||||||
FreeMem(OpenFile^.lpStrFile);
|
FreeMem(OpenFile^.lpStrFile);
|
||||||
|
FreeMem(OpenFile^.lpStrTitle);
|
||||||
FreeMem(OpenFile);
|
FreeMem(OpenFile);
|
||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user