From 0a5d9dd354c659a3e5992c0acacebe300a4d3654 Mon Sep 17 00:00:00 2001 From: Dries Buytaert Date: Thu, 24 Jun 2010 21:40:06 +0000 Subject: - Patch #836630 by catch: module_implements() caching is broken. --- includes/module.inc | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) (limited to 'includes') diff --git a/includes/module.inc b/includes/module.inc index f96ba3b91..e6a8ff98a 100644 --- a/includes/module.inc +++ b/includes/module.inc @@ -586,6 +586,9 @@ function module_implements($hook, $sort = FALSE, $reset = FALSE) { } if (!isset($implementations[$hook])) { + // The hook is not cached, so ensure that whether or not it has + // implementations, that the cache is updated at the end of the request. + $implementations['#write_cache'] = TRUE; $hook_info = module_hook_info(); $implementations[$hook] = array(); $list = module_list(FALSE, FALSE, $sort); @@ -593,8 +596,6 @@ function module_implements($hook, $sort = FALSE, $reset = FALSE) { $include_file = isset($hook_info[$hook]['group']) && module_load_include('inc', $module, $module . '.' . $hook_info[$hook]['group']); if (module_hook($module, $hook)) { $implementations[$hook][$module] = $include_file ? $hook_info[$hook]['group'] : FALSE; - // We added something to the cache, so write it when we are done. - $implementations['#write_cache'] = TRUE; } } // Allow modules to change the weight of specific implementations but avoid -- cgit v1.2.3