]> git.saurik.com Git - wxWidgets.git/commitdiff
Check that an error really occurred when getting wxChoice data in wxMSW.
authorVadim Zeitlin <vadim@wxwidgets.org>
Fri, 20 Jan 2012 22:11:39 +0000 (22:11 +0000)
committerVadim Zeitlin <vadim@wxwidgets.org>
Fri, 20 Jan 2012 22:11:39 +0000 (22:11 +0000)
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

src/msw/choice.cpp

index 34dd9b817da0c8deb77c1d565a5dfb85bd532954..8dc803b88b87452e41c8a2affb0eb08852739aab 100644 (file)
@@ -417,7 +417,7 @@ void wxChoice::DoSetItemClientData(unsigned int n, void* clientData)
 void* wxChoice::DoGetItemClientData(unsigned int n) const
 {
     LPARAM rc = SendMessage(GetHwnd(), CB_GETITEMDATA, n, 0);
-    if ( rc == CB_ERR )
+    if ( rc == CB_ERR && GetLastError() != ERROR_SUCCESS )
     {
         wxLogLastError(wxT("CB_GETITEMDATA"));