diff --git a/modules/field/field.module b/modules/field/field.module index a26ae0df34a74f7ca99ed412145ffa20e1674195..d6e1e004b6ae4e999302338dc0e4de5b0fec7144 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); } /**