diff options
Diffstat (limited to 'data/vim/patches/8.1.0652')
-rw-r--r-- | data/vim/patches/8.1.0652 | 148 |
1 files changed, 148 insertions, 0 deletions
diff --git a/data/vim/patches/8.1.0652 b/data/vim/patches/8.1.0652 new file mode 100644 index 000000000..99bdd7da2 --- /dev/null +++ b/data/vim/patches/8.1.0652 @@ -0,0 +1,148 @@ +To: vim_dev@googlegroups.com +Subject: Patch 8.1.0652 +Fcc: outbox +From: Bram Moolenaar <Bram@moolenaar.net> +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 8.1.0652 +Problem: Freeing memory for balloon eval too early. +Solution: Store the pointer in BalloonEval and free it later. (Yasuhiro + Matsumoto, closes #3725) +Files: src/beval.h, src/gui_w32.c + + +*** ../vim-8.1.0651/src/beval.h 2018-06-23 19:22:45.598486362 +0200 +--- src/beval.h 2018-12-28 19:10:21.049387746 +0100 +*************** +*** 76,81 **** +--- 76,84 ---- + int *vts; // vartabstop setting for this buffer + #endif + char_u *msg; ++ #ifdef FEAT_GUI_W32 ++ void *tofree; ++ #endif + } BalloonEval; + + #define EVAL_OFFSET_X 15 /* displacement of beval topleft corner from pointer */ +*** ../vim-8.1.0651/src/gui_w32.c 2018-12-27 22:43:03.901774877 +0100 +--- src/gui_w32.c 2018-12-28 19:12:47.316154820 +0100 +*************** +*** 8787,8793 **** + { + TOOLINFOW *pti; + int ToolInfoSize; +- WCHAR *tofree = NULL; + + if (multiline_balloon_available() == TRUE) + ToolInfoSize = sizeof(TOOLINFOW_NEW); +--- 8787,8792 ---- +*************** +*** 8817,8824 **** + RECT rect; + TOOLINFOW_NEW *ptin = (TOOLINFOW_NEW *)pti; + pti->lpszText = LPSTR_TEXTCALLBACKW; +! tofree = enc_to_utf16((char_u*)text, NULL); +! ptin->lParam = (LPARAM)tofree; + // switch multiline tooltips on + if (GetClientRect(s_textArea, &rect)) + SendMessageW(beval->balloon, TTM_SETMAXTIPWIDTH, 0, +--- 8816,8823 ---- + RECT rect; + TOOLINFOW_NEW *ptin = (TOOLINFOW_NEW *)pti; + pti->lpszText = LPSTR_TEXTCALLBACKW; +! beval->tofree = enc_to_utf16((char_u*)text, NULL); +! ptin->lParam = (LPARAM)beval->tofree; + // switch multiline tooltips on + if (GetClientRect(s_textArea, &rect)) + SendMessageW(beval->balloon, TTM_SETMAXTIPWIDTH, 0, +*************** +*** 8827,8834 **** + else + { + // do this old way +! tofree = enc_to_utf16((char_u*)text, NULL); +! pti->lpszText = tofree; + } + + // Limit ballooneval bounding rect to CursorPos neighbourhood. +--- 8826,8833 ---- + else + { + // do this old way +! beval->tofree = enc_to_utf16((char_u*)text, NULL); +! pti->lpszText = (LPWSTR)beval->tofree; + } + + // Limit ballooneval bounding rect to CursorPos neighbourhood. +*************** +*** 8851,8858 **** + mouse_event(MOUSEEVENTF_MOVE, 2, 2, 0, 0); + mouse_event(MOUSEEVENTF_MOVE, (DWORD)-1, (DWORD)-1, 0, 0); + vim_free(pti); +- if (tofree != NULL) +- vim_free(tofree); + } + #endif + +--- 8850,8855 ---- +*************** +*** 8898,8904 **** + RECT rect; + TOOLINFO_NEW *ptin = (TOOLINFO_NEW *)pti; + pti->lpszText = LPSTR_TEXTCALLBACK; +! ptin->lParam = (LPARAM)text; + if (GetClientRect(s_textArea, &rect)) /* switch multiline tooltips on */ + SendMessage(beval->balloon, TTM_SETMAXTIPWIDTH, 0, + (LPARAM)rect.right); +--- 8895,8902 ---- + RECT rect; + TOOLINFO_NEW *ptin = (TOOLINFO_NEW *)pti; + pti->lpszText = LPSTR_TEXTCALLBACK; +! beval->tofree = vim_strsave((char_u*)text); +! ptin->lParam = (LPARAM)beval->tofree; + if (GetClientRect(s_textArea, &rect)) /* switch multiline tooltips on */ + SendMessage(beval->balloon, TTM_SETMAXTIPWIDTH, 0, + (LPARAM)rect.right); +*************** +*** 9106,9114 **** + gui_mch_destroy_beval_area(BalloonEval *beval) + { + #ifdef FEAT_VARTABS +! if (beval->vts) +! vim_free(beval->vts); + #endif + vim_free(beval); + } + #endif /* FEAT_BEVAL_GUI */ +--- 9104,9112 ---- + gui_mch_destroy_beval_area(BalloonEval *beval) + { + #ifdef FEAT_VARTABS +! vim_free(beval->vts); + #endif ++ vim_free(beval->tofree); + vim_free(beval); + } + #endif /* FEAT_BEVAL_GUI */ +*** ../vim-8.1.0651/src/version.c 2018-12-28 19:06:43.095216722 +0100 +--- src/version.c 2018-12-28 19:12:09.156476825 +0100 +*************** +*** 801,802 **** +--- 801,804 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 652, + /**/ + +-- +hundred-and-one symptoms of being an internet addict: +68. Your cat always puts viruses on your dogs homepage + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ an exciting new programming language -- http://www.Zimbu.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// |