From af94789b7f0b429c17c30b5bf6fe7504e29a502d Mon Sep 17 00:00:00 2001 From: Agetian Date: Fri, 3 Nov 2017 06:40:52 +0000 Subject: [PATCH] - The cast in AbilityUtils.java:1038 is unsafe despite the comment saying otherwise. The game could crash under certain circumstances with a class cast exception (e.g. the AI attacking with Wings of the Guard into a planeswalker like Kaya, Ghost Assassin). --- .../src/main/java/forge/game/ability/AbilityUtils.java | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/forge-game/src/main/java/forge/game/ability/AbilityUtils.java b/forge-game/src/main/java/forge/game/ability/AbilityUtils.java index 5559806689f..59edd7b169c 100644 --- a/forge-game/src/main/java/forge/game/ability/AbilityUtils.java +++ b/forge-game/src/main/java/forge/game/ability/AbilityUtils.java @@ -4,7 +4,6 @@ import com.google.common.base.Predicate; import com.google.common.collect.ImmutableList; import com.google.common.collect.Iterables; import com.google.common.collect.Maps; - import forge.card.CardType; import forge.card.ColorSet; import forge.card.MagicColor; @@ -29,7 +28,6 @@ import forge.util.Expressions; import forge.util.TextUtil; import forge.util.collect.FCollection; import forge.util.collect.FCollectionView; - import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.text.WordUtils; @@ -1032,10 +1030,9 @@ public class AbilityUtils { } if (o instanceof List) { final List pList = (List)o; - if (!pList.isEmpty() && pList.get(0) instanceof Player) { + if (!pList.isEmpty()) { for (final Object p : pList) { - if (!players.contains(p)) { - // We now know each p in o to be an instance of Player, so cast is safe + if (p instanceof Player && !players.contains(p)) { players.add((Player) p); } }