mirror of
git://xwords.git.sourceforge.net/gitroot/xwords/xwords
synced 2025-01-30 08:34:16 +01:00
as a workaround for reported lockups on WM SE devices, save state
after many user actions. This was meant to capture the state right before the crash but seems instead to have fixed it.
This commit is contained in:
parent
605a19c6d2
commit
b3d19a6abf
1 changed files with 22 additions and 1 deletions
|
@ -56,6 +56,11 @@
|
||||||
#define SCROLLBAR_WIDTH 12
|
#define SCROLLBAR_WIDTH 12
|
||||||
#define SCROLLBARID 0x4321 /* needs to be unique! */
|
#define SCROLLBARID 0x4321 /* needs to be unique! */
|
||||||
|
|
||||||
|
/* CE_DEBUG_SAVEOFTEN: Temporary hack to attempt to get a reproducible case
|
||||||
|
* of the lockup folks are seeing on WM 2003 SE devices.
|
||||||
|
*/
|
||||||
|
#define CE_DEBUG_SAVEOFTEN
|
||||||
|
|
||||||
#ifdef MEM_DEBUG
|
#ifdef MEM_DEBUG
|
||||||
# define MEMPOOL globals->mpool,
|
# define MEMPOOL globals->mpool,
|
||||||
#else
|
#else
|
||||||
|
@ -1302,9 +1307,10 @@ ceSaveCurGame( CEAppGlobals* globals, XP_Bool autoSave )
|
||||||
|
|
||||||
fwState.path = globals->curGameName;
|
fwState.path = globals->curGameName;
|
||||||
fwState.globals = globals;
|
fwState.globals = globals;
|
||||||
|
#ifndef CE_DEBUG_SAVEOFTEN
|
||||||
board_hideTray( globals->game.board ); /* so won't be visible when
|
board_hideTray( globals->game.board ); /* so won't be visible when
|
||||||
next opened */
|
next opened */
|
||||||
|
#endif
|
||||||
memStream = mem_stream_make( MEMPOOL globals->vtMgr, &fwState, 0,
|
memStream = mem_stream_make( MEMPOOL globals->vtMgr, &fwState, 0,
|
||||||
ceWriteToFile );
|
ceWriteToFile );
|
||||||
stream_open( memStream );
|
stream_open( memStream );
|
||||||
|
@ -1414,6 +1420,17 @@ handleScroll( CEAppGlobals* globals, XP_S16 pos, /* only valid for THUMB* */
|
||||||
} /* handleScroll */
|
} /* handleScroll */
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#ifdef CE_DEBUG_SAVEOFTEN
|
||||||
|
static void
|
||||||
|
debug_saveCurState( CEAppGlobals* globals )
|
||||||
|
{
|
||||||
|
ceSaveCurGame( globals, XP_TRUE );
|
||||||
|
ceSavePrefs( globals );
|
||||||
|
}
|
||||||
|
#else
|
||||||
|
# define debug_saveCurState(g)
|
||||||
|
#endif
|
||||||
|
|
||||||
LRESULT CALLBACK
|
LRESULT CALLBACK
|
||||||
WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
|
WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
|
||||||
{
|
{
|
||||||
|
@ -1594,6 +1611,7 @@ WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
|
||||||
globals->penDown = XP_TRUE;
|
globals->penDown = XP_TRUE;
|
||||||
draw = board_handlePenDown( globals->game.board, LOWORD(lParam),
|
draw = board_handlePenDown( globals->game.board, LOWORD(lParam),
|
||||||
HIWORD(lParam), 0, &handled );
|
HIWORD(lParam), 0, &handled );
|
||||||
|
debug_saveCurState( globals );
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case WM_MOUSEMOVE:
|
case WM_MOUSEMOVE:
|
||||||
|
@ -1601,6 +1619,7 @@ WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
|
||||||
draw = board_handlePenMove( globals->game.board,
|
draw = board_handlePenMove( globals->game.board,
|
||||||
LOWORD(lParam),
|
LOWORD(lParam),
|
||||||
HIWORD(lParam) );
|
HIWORD(lParam) );
|
||||||
|
debug_saveCurState( globals );
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
@ -1609,6 +1628,7 @@ WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
|
||||||
draw = board_handlePenUp( globals->game.board, LOWORD(lParam),
|
draw = board_handlePenUp( globals->game.board, LOWORD(lParam),
|
||||||
HIWORD(lParam), 0 );
|
HIWORD(lParam), 0 );
|
||||||
globals->penDown = XP_FALSE;
|
globals->penDown = XP_FALSE;
|
||||||
|
debug_saveCurState( globals );
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
@ -1618,6 +1638,7 @@ WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
|
||||||
}
|
}
|
||||||
draw = board_handleKey( globals->game.board, wParam )
|
draw = board_handleKey( globals->game.board, wParam )
|
||||||
|| board_handleKey( globals->game.board, wParam - ('a'-'A') );
|
|| board_handleKey( globals->game.board, wParam - ('a'-'A') );
|
||||||
|
debug_saveCurState( globals );
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case WM_TIMER:
|
case WM_TIMER:
|
||||||
|
|
Loading…
Add table
Reference in a new issue