? imagecache_clear_static_caches.patch
Index: imagecache.module
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/imagecache/imagecache.module,v
retrieving revision 1.112.2.5
diff -u -p -r1.112.2.5 imagecache.module
--- imagecache.module	19 Aug 2009 20:59:07 -0000	1.112.2.5
+++ imagecache.module	21 Dec 2009 21:41:05 -0000
@@ -909,7 +909,7 @@ function imagecache_presets($reset = FAL
     $result = db_query('SELECT * FROM {imagecache_preset} ORDER BY presetname');
     while ($preset = db_fetch_array($result)) {
       $presets[$preset['presetid']] = $preset;
-      $presets[$preset['presetid']]['actions'] = imagecache_preset_actions($preset);
+      $presets[$preset['presetid']]['actions'] = imagecache_preset_actions($preset, $reset);
       $presets[$preset['presetid']]['storage'] = IMAGECACHE_STORAGE_NORMAL;
 
       // Collect normal preset names so we can skip defaults and mark overrides accordingly
@@ -968,9 +968,9 @@ function imagecache_preset($preset_id, $
  *   empty array if preset_name is an invalid preset
  */
 
-function imagecache_preset_by_name($preset_name) {
+function imagecache_preset_by_name($preset_name, $reset = FALSE) {
   static $presets_by_name = array();
-  if (!$presets_by_name &&  $presets = imagecache_presets()) {
+  if ((!$presets_by_name || $reset) && $presets = imagecache_presets()) {
     foreach ($presets as $preset) {
       $presets_by_name[$preset['presetname']] = $preset;
     }
@@ -1017,6 +1017,7 @@ function imagecache_preset_actions($pres
   static $actions_cache = array();
 
   if ($reset || empty($actions_cache[$preset['presetid']])) {
+    $actions_cache[$preset['presetid']] = array();
     $result = db_query('SELECT * FROM {imagecache_action} where presetid = %d order by weight', $preset['presetid']);
     while ($row = db_fetch_array($result)) {
       $row['data'] = unserialize($row['data']);
