comparison src/gui_w32.c @ 27259:59cdcd1e47b8 v8.2.4158

patch 8.2.4158: MS-Windows: memory leak in :browse Commit: https://github.com/vim/vim/commit/14b8d6ac6b50f2f4f3e7463e4c335f51a512ad30 Author: K.Takata <kentkt@csc.jp> Date: Thu Jan 20 15:05:22 2022 +0000 patch 8.2.4158: MS-Windows: memory leak in :browse Problem: MS-Windows: memory leak in :browse. Solution: Free stuff before returning. (Ken Takata, closes https://github.com/vim/vim/issues/9574)
author Bram Moolenaar <Bram@vim.org>
date Thu, 20 Jan 2022 16:15:04 +0100
parents d5570658f18d
children a63505f33894
comparison
equal deleted inserted replaced
27258:43d000669fe8 27259:59cdcd1e47b8
3585 WCHAR *titlep = NULL; 3585 WCHAR *titlep = NULL;
3586 WCHAR *extp = NULL; 3586 WCHAR *extp = NULL;
3587 WCHAR *initdirp = NULL; 3587 WCHAR *initdirp = NULL;
3588 WCHAR *filterp; 3588 WCHAR *filterp;
3589 char_u *p, *q; 3589 char_u *p, *q;
3590 BOOL ret;
3590 3591
3591 if (dflt == NULL) 3592 if (dflt == NULL)
3592 fileBuf[0] = NUL; 3593 fileBuf[0] = NUL;
3593 else 3594 else
3594 { 3595 {
3653 # ifdef FEAT_SHORTCUT 3654 # ifdef FEAT_SHORTCUT
3654 if (curbuf->b_p_bin) 3655 if (curbuf->b_p_bin)
3655 fileStruct.Flags |= OFN_NODEREFERENCELINKS; 3656 fileStruct.Flags |= OFN_NODEREFERENCELINKS;
3656 # endif 3657 # endif
3657 if (saving) 3658 if (saving)
3658 { 3659 ret = GetSaveFileNameW(&fileStruct);
3659 if (!GetSaveFileNameW(&fileStruct))
3660 return NULL;
3661 }
3662 else 3660 else
3663 { 3661 ret = GetOpenFileNameW(&fileStruct);
3664 if (!GetOpenFileNameW(&fileStruct))
3665 return NULL;
3666 }
3667 3662
3668 vim_free(filterp); 3663 vim_free(filterp);
3669 vim_free(initdirp); 3664 vim_free(initdirp);
3670 vim_free(titlep); 3665 vim_free(titlep);
3671 vim_free(extp); 3666 vim_free(extp);
3672 3667
3673 // Convert from UCS2 to 'encoding'. 3668 if (!ret)
3669 return NULL;
3670
3671 // Convert from UTF-16 to 'encoding'.
3674 p = utf16_to_enc(fileBuf, NULL); 3672 p = utf16_to_enc(fileBuf, NULL);
3675 if (p == NULL) 3673 if (p == NULL)
3676 return NULL; 3674 return NULL;
3677 3675
3678 // Give focus back to main window (when using MDI). 3676 // Give focus back to main window (when using MDI).