From 53f292adcc54ee97479c26aca638da713f3013a0 Mon Sep 17 00:00:00 2001 From: Bernhard Schussek Date: Sun, 5 May 2013 23:28:39 +0200 Subject: [PATCH] [Form] Removed usage of the ChoiceList::getIndicesFor*() methods where they don't offer any performance benefit --- .../Core/DataTransformer/ChoiceToBooleanArrayTransformer.php | 4 ++-- .../Core/DataTransformer/ChoicesToBooleanArrayTransformer.php | 4 ++-- src/Symfony/Component/Form/Extension/Core/Type/ChoiceType.php | 2 +- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/src/Symfony/Component/Form/Extension/Core/DataTransformer/ChoiceToBooleanArrayTransformer.php b/src/Symfony/Component/Form/Extension/Core/DataTransformer/ChoiceToBooleanArrayTransformer.php index b8aa95effc..12e1efd081 100644 --- a/src/Symfony/Component/Form/Extension/Core/DataTransformer/ChoiceToBooleanArrayTransformer.php +++ b/src/Symfony/Component/Form/Extension/Core/DataTransformer/ChoiceToBooleanArrayTransformer.php @@ -56,10 +56,10 @@ class ChoiceToBooleanArrayTransformer implements DataTransformerInterface throw new TransformationFailedException('Can not get the choice list', $e->getCode(), $e); } - $index = current($this->choiceList->getIndicesForChoices(array($choice))); + $valueMap = array_flip($this->choiceList->getValuesForChoices(array($choice))); foreach ($values as $i => $value) { - $values[$i] = $i === $index; + $values[$i] = isset($valueMap[$value]); } return $values; diff --git a/src/Symfony/Component/Form/Extension/Core/DataTransformer/ChoicesToBooleanArrayTransformer.php b/src/Symfony/Component/Form/Extension/Core/DataTransformer/ChoicesToBooleanArrayTransformer.php index 0c2ea3a394..d3b8cc345b 100644 --- a/src/Symfony/Component/Form/Extension/Core/DataTransformer/ChoicesToBooleanArrayTransformer.php +++ b/src/Symfony/Component/Form/Extension/Core/DataTransformer/ChoicesToBooleanArrayTransformer.php @@ -58,10 +58,10 @@ class ChoicesToBooleanArrayTransformer implements DataTransformerInterface throw new TransformationFailedException('Can not get the choice list', $e->getCode(), $e); } - $indexMap = array_flip($this->choiceList->getIndicesForChoices($array)); + $valueMap = array_flip($this->choiceList->getValuesForChoices($array)); foreach ($values as $i => $value) { - $values[$i] = isset($indexMap[$i]); + $values[$i] = isset($valueMap[$value]); } return $values; diff --git a/src/Symfony/Component/Form/Extension/Core/Type/ChoiceType.php b/src/Symfony/Component/Form/Extension/Core/Type/ChoiceType.php index 28327b6291..2f65199692 100644 --- a/src/Symfony/Component/Form/Extension/Core/Type/ChoiceType.php +++ b/src/Symfony/Component/Form/Extension/Core/Type/ChoiceType.php @@ -104,7 +104,7 @@ class ChoiceType extends AbstractType // Check if the choices already contain the empty value // Only add the empty value option if this is not the case - if (0 === count($options['choice_list']->getIndicesForValues(array('')))) { + if (0 === count($options['choice_list']->getChoicesForValues(array('')))) { $view->vars['empty_value'] = $options['empty_value']; }