#642612 by yched: Add clean way to reset entity_info() cache.

merge-requests/26/head
Angie Byron 2009-11-26 05:54:48 +00:00
parent 37339758d1
commit d3de3672f1
6 changed files with 14 additions and 11 deletions

View File

@ -6278,6 +6278,14 @@ function entity_get_info($entity_type = NULL) {
return empty($entity_type) ? $entity_info : $entity_info[$entity_type]; return empty($entity_type) ? $entity_info : $entity_info[$entity_type];
} }
/**
* Resets the cached information about entity types.
*/
function entity_info_cache_clear() {
drupal_static_reset('entity_get_info');
cache_clear_all('entity_info', 'cache');
}
/** /**
* Helper function to extract id, vid, and bundle name from an entity. * Helper function to extract id, vid, and bundle name from an entity.
* *

View File

@ -26,8 +26,7 @@
function field_info_cache_clear() { function field_info_cache_clear() {
// @todo: Remove this when field_attach_*_bundle() bundle management // @todo: Remove this when field_attach_*_bundle() bundle management
// functions are moved to the entity API. // functions are moved to the entity API.
drupal_static_reset('entity_get_info'); entity_info_cache_clear();
cache_clear_all('entity_info', 'cache');
_field_info_collate_types(TRUE); _field_info_collate_types(TRUE);
drupal_static_reset('field_build_modes'); drupal_static_reset('field_build_modes');

View File

@ -105,8 +105,7 @@ function field_test_entity_info_translatable($obj_type = NULL, $translatable = N
$stored_value = &drupal_static(__FUNCTION__, array()); $stored_value = &drupal_static(__FUNCTION__, array());
if (isset($obj_type)) { if (isset($obj_type)) {
$stored_value[$obj_type] = $translatable; $stored_value[$obj_type] = $translatable;
drupal_static_reset('entity_get_info'); entity_info_cache_clear();
cache_clear_all('entity_info', 'cache');
} }
return $stored_value; return $stored_value;
} }

View File

@ -163,8 +163,7 @@ function rdf_mapping_save(&$mapping) {
)) ))
->execute(); ->execute();
cache_clear_all('entity_info', 'cache'); entity_info_cache_clear();
drupal_static_reset('entity_get_info');
return $status; return $status;
} }
@ -258,8 +257,7 @@ function rdf_rdfa_attributes($mapping, $data = NULL) {
function rdf_modules_installed($modules) { function rdf_modules_installed($modules) {
// We need to clear the caches of entity_info as this is not done right // We need to clear the caches of entity_info as this is not done right
// during the tests. see http://drupal.org/node/594234 // during the tests. see http://drupal.org/node/594234
cache_clear_all('entity_info', 'cache'); entity_info_cache_clear();
drupal_static_reset('entity_get_info');
foreach ($modules as $module) { foreach ($modules as $module) {
$function = $module . '_rdf_mapping'; $function = $module . '_rdf_mapping';

View File

@ -138,8 +138,7 @@ class RdfMappingDefinitionTestCase extends DrupalWebTestCase {
rdf_modules_installed(array('rdf_test', 'node')); rdf_modules_installed(array('rdf_test', 'node'));
// entity_info caches must be cleared during testing. This is done // entity_info caches must be cleared during testing. This is done
// automatically during the manual installation. // automatically during the manual installation.
cache_clear_all('entity_info', 'cache'); entity_info_cache_clear();
drupal_static_reset('entity_get_info');
} }
/** /**

View File

@ -1055,7 +1055,7 @@ function system_modules_submit($form, &$form_state) {
node_types_rebuild(); node_types_rebuild();
menu_rebuild(); menu_rebuild();
cache_clear_all('schema', 'cache'); cache_clear_all('schema', 'cache');
cache_clear_all('entity_info', 'cache'); entity_info_cache_clear();
drupal_clear_css_cache(); drupal_clear_css_cache();
drupal_clear_js_cache(); drupal_clear_js_cache();