mirror of
https://github.com/Bubberstation/Bubberstation.git
synced 2026-08-25 14:08:31 +01:00
[MIRROR] Fix client time timers duplicating if any client time timer caused a stack overflow. (#1703)
* Fix client time timers duplicating if any client time timer caused a stack overflow. (#54977) * Fix client time timers duplicating if any client time timer caused a stack overflow. * Fix client time timers duplicating if any client time timer caused a stack overflow. Co-authored-by: Kyle Spier-Swenson <kyleshome@gmail.com>
This commit is contained in:
co-authored by
Kyle Spier-Swenson
parent
4aa0bd0bd0
commit
44567b22a3
@@ -100,7 +100,10 @@ SUBSYSTEM_DEF(timer)
|
||||
log_world(to_log.Join("\n"))
|
||||
|
||||
// Process client-time timers
|
||||
var/next_clienttime_timer_index = 0
|
||||
var/static/next_clienttime_timer_index = 0
|
||||
if (next_clienttime_timer_index)
|
||||
clienttime_timers.Cut(1, next_clienttime_timer_index+1)
|
||||
next_clienttime_timer_index = 0
|
||||
for (next_clienttime_timer_index in 1 to length(clienttime_timers))
|
||||
if (MC_TICK_CHECK)
|
||||
next_clienttime_timer_index--
|
||||
@@ -112,7 +115,6 @@ SUBSYSTEM_DEF(timer)
|
||||
|
||||
var/datum/callback/callBack = ctime_timer.callBack
|
||||
if (!callBack)
|
||||
clienttime_timers.Cut(next_clienttime_timer_index,next_clienttime_timer_index + 1)
|
||||
CRASH("Invalid timer: [get_timer_debug_string(ctime_timer)] world.time: [world.time], \
|
||||
head_offset: [head_offset], practical_offset: [practical_offset], REALTIMEOFDAY: [REALTIMEOFDAY]")
|
||||
|
||||
@@ -129,6 +131,7 @@ SUBSYSTEM_DEF(timer)
|
||||
// Remove invoked client-time timers
|
||||
if (next_clienttime_timer_index)
|
||||
clienttime_timers.Cut(1, next_clienttime_timer_index+1)
|
||||
next_clienttime_timer_index = 0
|
||||
|
||||
if (MC_TICK_CHECK)
|
||||
return
|
||||
|
||||
Reference in New Issue
Block a user