mirror of
https://bitbucket.org/CPMADevs/cnq3
synced 2025-01-22 08:21:48 +00:00
fixed "SCR_UpdateScreen: recursively called" false positives (e.g. after being kicked twice)
This commit is contained in:
parent
b4d78a1bc1
commit
8c45c7aa60
2 changed files with 11 additions and 1 deletions
|
@ -1,6 +1,9 @@
|
|||
|
||||
DD Mmm 17 - 1.49
|
||||
|
||||
fix: false positives of the "SCR_UpdateScreen: recursively called" fatal error
|
||||
repro: connect, get kicked, connect, get kicked
|
||||
|
||||
fix: crash when the number of shader stages was wrong (would happen with the "brandon" player model)
|
||||
|
||||
fix: the release of a key bound to "+vstr a b" would execute "b" even though the key press didn't execute "a"
|
||||
|
|
|
@ -391,6 +391,13 @@ void SCR_UpdateScreen()
|
|||
Com_Error( ERR_FATAL, "SCR_UpdateScreen: recursively called" );
|
||||
}
|
||||
|
||||
// Why set to 1 and 0 explicitly?
|
||||
// Because the increment/decrement approach doesn't work.
|
||||
// One of the calls below might invoke Com_Error, which will in turn
|
||||
// call longjmp and "abort" the current frame, meaning the end of this
|
||||
// function (or any function for that matter) is not always reached.
|
||||
recursive = 1;
|
||||
|
||||
SCR_DrawScreenField( STEREO_CENTER );
|
||||
|
||||
if ( com_speeds->integer ) {
|
||||
|
@ -406,6 +413,6 @@ void SCR_UpdateScreen()
|
|||
re.EndFrame( NULL, NULL, NULL );
|
||||
}
|
||||
|
||||
--recursive;
|
||||
recursive = 0;
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in a new issue