Problem: MS-Windows: memory leak in :browse.
Solution: Free stuff before returning. (Ken Takata, closes #9574)
WCHAR *initdirp = NULL;
WCHAR *filterp;
char_u *p, *q;
+ BOOL ret;
if (dflt == NULL)
fileBuf[0] = NUL;
fileStruct.Flags |= OFN_NODEREFERENCELINKS;
# endif
if (saving)
- {
- if (!GetSaveFileNameW(&fileStruct))
- return NULL;
- }
+ ret = GetSaveFileNameW(&fileStruct);
else
- {
- if (!GetOpenFileNameW(&fileStruct))
- return NULL;
- }
+ ret = GetOpenFileNameW(&fileStruct);
vim_free(filterp);
vim_free(initdirp);
vim_free(titlep);
vim_free(extp);
- // Convert from UCS2 to 'encoding'.
+ if (!ret)
+ return NULL;
+
+ // Convert from UTF-16 to 'encoding'.
p = utf16_to_enc(fileBuf, NULL);
if (p == NULL)
return NULL;
static int included_patches[] =
{ /* Add new patch number below this line */
+/**/
+ 4158,
/**/
4157,
/**/