Skip to content
This repository has been archived by the owner on Feb 11, 2021. It is now read-only.

Commit

Permalink
Date: Sat, 21 Mar 2009 19:41:52 -0700 (PDT)
Browse files Browse the repository at this point in the history
From: Mason Wheeler
Subject: [SDL] Critical SDL 1.3 patch

Displaying a window created with SDL_CreateWindowFrom was causing stack overf
lows for me under certain conditions.  After far too much work trying to get
Visual Studio's debugger to play nice with a program written in Delphi, I tra
cked it down to a nasty reentrancy cycle in the WndProc handling.  Here's a p
atch that fixes the problem
  • Loading branch information
slouken committed Mar 23, 2009
1 parent 8a9603d commit 6b4c975
Showing 1 changed file with 11 additions and 0 deletions.
11 changes: 11 additions & 0 deletions src/video/win32/SDL_win32events.c
Expand Up @@ -570,6 +570,17 @@ WIN_WindowProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam)
}
return (0);

/* If this isn't our window, we don't need to repaint the frame.
This fixes a reentrancy issue that can cause stack overflows with foreign windows.
3/21/09 Mason Wheeler */
case WM_NCPAINT:
{
if (SDL_GetWindowFlags(data->windowID) && SDL_WINDOW_FOREIGN) {
return(0);
}
break;
}

/* We'll do our own drawing, prevent flicker */
case WM_ERASEBKGND:
{
Expand Down

0 comments on commit 6b4c975

Please sign in to comment.