Check that an error really occurred when getting wxChoice data in wxMSW.
We could wrongly return NULL client data if -1 was stored as client data in wxChoice because it's the same value as CB_ERR and we always interpreted it as an error, while it may not be one if GetLastError() doesn't indicate it. See #13883. git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@70414 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
@@ -417,7 +417,7 @@ void wxChoice::DoSetItemClientData(unsigned int n, void* clientData)
|
|||||||
void* wxChoice::DoGetItemClientData(unsigned int n) const
|
void* wxChoice::DoGetItemClientData(unsigned int n) const
|
||||||
{
|
{
|
||||||
LPARAM rc = SendMessage(GetHwnd(), CB_GETITEMDATA, n, 0);
|
LPARAM rc = SendMessage(GetHwnd(), CB_GETITEMDATA, n, 0);
|
||||||
if ( rc == CB_ERR )
|
if ( rc == CB_ERR && GetLastError() != ERROR_SUCCESS )
|
||||||
{
|
{
|
||||||
wxLogLastError(wxT("CB_GETITEMDATA"));
|
wxLogLastError(wxT("CB_GETITEMDATA"));
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user