[Problem report] SetWindowWord creates infinite loop

Gerard Patel gerard.patel at nerim.net
Wed Sep 19 20:25:36 CDT 2001


The following change in SetWindowWord

+
+    WIN_ReleaseWndPtr(wndPtr);
+    switch(offset)
     {
-	case GWW_ID:        ptr = (WORD *)&wndPtr->wIDmenu; break;
-	case GWW_HINSTANCE: ptr = (WORD *)&wndPtr->hInstance; break;
-        case GWW_HWNDPARENT: retval = SetParent( hwnd, newval );
-                             goto end;
-	default:
-            WARN("Invalid offset %d\n", offset );
-            retval = 0;
-            goto end;
+    case GWL_ID:
+    case GWL_HINSTANCE:
+    case GWL_HWNDPARENT:
+        return SetWindowLongW( hwnd, offset, (UINT)newval );
+    default:
+        WARN("Invalid offset %d\n", offset );
+        return 0;
     }

creates an infinite loop as SetWindowLong calls WIN_SetWindowLong,
that calls SetWindowWord for the GWL_HINSTANCE case.

Gerard





More information about the wine-devel mailing list