From fe6a5a06a7706cd562bda270cb307aa0a344a135 Mon Sep 17 00:00:00 2001 From: Dries Buytaert Date: Sat, 6 Feb 2010 15:51:08 +0000 Subject: - Patch #700194 by yched: optimize field_modules_disabled(). --- modules/field/field.module | 24 +++++++++++++----------- 1 file changed, 13 insertions(+), 11 deletions(-) (limited to 'modules') diff --git a/modules/field/field.module b/modules/field/field.module index a26ae0df3..d6e1e004b 100644 --- a/modules/field/field.module +++ b/modules/field/field.module @@ -234,17 +234,19 @@ function field_modules_enabled($modules) { * Implements hook_modules_disabled(). */ function field_modules_disabled($modules) { - foreach ($modules as $module) { - db_update('field_config') - ->fields(array('active' => 0)) - ->condition('module', $module) - ->execute(); - db_update('field_config') - ->fields(array('storage_active' => 0)) - ->condition('storage_module', $module) - ->execute(); - field_cache_clear(TRUE); - } + // Track fields whose field type is being disabled. + db_update('field_config') + ->fields(array('active' => 0)) + ->condition('module', $modules, 'IN') + ->execute(); + + // Track fields whose storage backend is being disabled. + db_update('field_config') + ->fields(array('storage_active' => 0)) + ->condition('storage_module', $modules, 'IN') + ->execute(); + + field_cache_clear(TRUE); } /** -- cgit v1.2.3