On Sat, Oct 27, 2018 at 12:47 PM Nikolay Sivov <nsivov(a)codeweavers.com> wrote:
On 10/25/2018 09:04 PM, Gabriel Ivăncescu wrote:
+ WCHAR *text; + UINT size, len = SendMessageW(hwnd, WM_GETTEXTLENGTH, 0, 0); + + if (flag != autoappend_flag_displayempty && len == 0) + { + if (ac->options & ACO_AUTOSUGGEST) hide_listbox(ac, ac->hwndListBox); + return; } + + size = len + 1; + if (!(text = heap_alloc(size * sizeof(WCHAR)))) + return; + len = SendMessageW(hwnd, WM_GETTEXT, size, (LPARAM)text); + if (len + 1 != size) + text = heap_realloc(text, (len + 1) * sizeof(WCHAR)); Was this tested with some inconsistent WM_GETTEXT implementation? Why do you need to realloc?
When I wrote that (was awhile ago) IIRC I followed the APIs based on MSDN docs, where it said the result can be smaller under certain circumstances with ANSI<->Unicode conversion. I don't know if Wine suffers from that, however since the edit control can be subclassed by apps which maybe imitate MSDN's gimmicks, it's probably a safer bet anyway. Also note that this patch just moved that function as it was already there, so if that's not needed, it should be done in a different patch, if there's nothing else wrong with this series. (i.e. it's out of scope for this patch at least)