diff --git a/core/lib/Drupal/Core/Plugin/DefaultPluginBag.php b/core/lib/Drupal/Core/Plugin/DefaultPluginBag.php index b488250..3f54a58 100644 --- a/core/lib/Drupal/Core/Plugin/DefaultPluginBag.php +++ b/core/lib/Drupal/Core/Plugin/DefaultPluginBag.php @@ -131,17 +131,13 @@ public function getConfiguration() { * {@inheritdoc} */ public function setConfiguration($configuration) { - $this->configurations = array(); - $this->pluginInstances = array(); - $this->instanceIDs = array(); - - $instance_ids = array_keys($configuration); - $this->instanceIDs = array_combine($instance_ids, $instance_ids); - // Store the original order of the instance IDs for export. - $this->originalOrder = $this->instanceIDs; - + $instance_ids = $this->getInstanceIds(); foreach ($configuration as $instance_id => $instance_configuration) { $this->setInstanceConfiguration($instance_id, $instance_configuration); + unset($instance_ids[$instance_id]); + } + foreach ($instance_ids as $instance_id) { + $this->removeInstanceId($instance_id); } return $this; }