diff options
author | Dries Buytaert <dries@buytaert.net> | 2010-02-06 15:51:08 +0000 |
---|---|---|
committer | Dries Buytaert <dries@buytaert.net> | 2010-02-06 15:51:08 +0000 |
commit | fe6a5a06a7706cd562bda270cb307aa0a344a135 (patch) | |
tree | 1a45d43f2e5eaf057d5a70637471a7c4534d1884 | |
parent | 7f4598d8d1c3055ec2c89d3cb691010175674bb6 (diff) | |
download | brdo-fe6a5a06a7706cd562bda270cb307aa0a344a135.tar.gz brdo-fe6a5a06a7706cd562bda270cb307aa0a344a135.tar.bz2 |
- Patch #700194 by yched: optimize field_modules_disabled().
-rw-r--r-- | modules/field/field.module | 24 |
1 files changed, 13 insertions, 11 deletions
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); } /** |