summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDries Buytaert <dries@buytaert.net>2010-02-06 15:51:08 +0000
committerDries Buytaert <dries@buytaert.net>2010-02-06 15:51:08 +0000
commitfe6a5a06a7706cd562bda270cb307aa0a344a135 (patch)
tree1a45d43f2e5eaf057d5a70637471a7c4534d1884
parent7f4598d8d1c3055ec2c89d3cb691010175674bb6 (diff)
downloadbrdo-fe6a5a06a7706cd562bda270cb307aa0a344a135.tar.gz
brdo-fe6a5a06a7706cd562bda270cb307aa0a344a135.tar.bz2
- Patch #700194 by yched: optimize field_modules_disabled().
-rw-r--r--modules/field/field.module24
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);
}
/**