mirror of
https://github.com/Card-Forge/forge.git
synced 2025-11-18 11:48:02 +00:00
Fix running out of memory from too many waiting triggers (#8466)
This commit is contained in:
@@ -262,9 +262,16 @@ public class TriggerHandler {
|
||||
return;
|
||||
}
|
||||
|
||||
// too many waiting triggers might cause OutOfMemory exception
|
||||
// such high amount usually happens from looping on one type:
|
||||
// e.g. Heroes' Bane counters ability
|
||||
// we can just run further triggers directly, side effects are highly unlikely
|
||||
// (could also make this depend on Runtime.getRuntime().freeMemory()
|
||||
// - but probably overkill)
|
||||
boolean canWait = waitingTriggers.size() < 9999;
|
||||
if (mode == TriggerType.Always) {
|
||||
runStateTrigger(runParams);
|
||||
} else if ((game.getStack().isFrozen() || holdTrigger) && mode != TriggerType.TapsForMana && mode != TriggerType.ManaAdded) {
|
||||
} else if (canWait && (game.getStack().isFrozen() || holdTrigger) && mode != TriggerType.TapsForMana && mode != TriggerType.ManaAdded) {
|
||||
waitingTriggers.add(new TriggerWaiting(mode, runParams));
|
||||
} else {
|
||||
runWaitingTrigger(new TriggerWaiting(mode, runParams));
|
||||
|
||||
Reference in New Issue
Block a user