Fixed window refcount handling in GetNextDlgGroupItem.
diff --git a/windows/dialog.c b/windows/dialog.c
index f254cbe..3edba3f 100644
--- a/windows/dialog.c
+++ b/windows/dialog.c
@@ -1731,13 +1731,17 @@
if (!pWnd || (pWnd->dwStyle & WS_GROUP))
{
/* Wrap-around to the beginning of the group */
- WND *pWndStart = WIN_LockWndPtr(pWndDlg->child);
- for (WIN_UpdateWndPtr(&pWnd,pWndStart); pWnd;WIN_UpdateWndPtr(&pWnd,pWnd->next))
+ WND *pWndTemp;
+
+ WIN_UpdateWndPtr( &pWnd, pWndDlg->child );
+ for ( pWndTemp = WIN_LockWndPtr( pWnd );
+ pWndTemp;
+ WIN_UpdateWndPtr( &pWndTemp, pWndTemp->next) )
{
- if (pWnd->dwStyle & WS_GROUP) pWndStart = pWnd;
- if (pWnd == pWndCtrl) break;
+ if (pWndTemp->dwStyle & WS_GROUP) WIN_UpdateWndPtr( &pWnd, pWndTemp );
+ if (pWndTemp == pWndCtrl) break;
}
- pWnd = pWndStart;
+ WIN_ReleaseWndPtr( pWndTemp );
}
if (pWnd == pWndCtrl) break;
if ((pWnd->dwStyle & WS_VISIBLE) && !(pWnd->dwStyle & WS_DISABLED))