# HG changeset patch # User Sam Lantinga # Date 1237773750 0 # Node ID 75483112b97f65fded98b31c22af3762f2f0a488 # Parent c0ce3380742d728611d069f2620eae3dd2608a29 Date: Sat, 21 Mar 2009 19:41:52 -0700 (PDT) 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 diff -r c0ce3380742d -r 75483112b97f src/video/win32/SDL_win32events.c --- a/src/video/win32/SDL_win32events.c Sun Mar 22 06:56:37 2009 +0000 +++ b/src/video/win32/SDL_win32events.c Mon Mar 23 02:02:30 2009 +0000 @@ -570,6 +570,17 @@ } 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: {