From 4fda06b547baeb95bc486e1933c2e5b6ddb01291 Mon Sep 17 00:00:00 2001 From: Tomasz Sowa Date: Tue, 21 Oct 2014 07:27:21 +0000 Subject: [PATCH] fixed: PatternCacher incorrectly rebuilt the cache some new Ezc::Pattern objects were inserted the storage container is std::map but we traverse it as a std::vector e.g.: for(size_t i=0 ; isecond.pattern); } +void PatternCacher::ClearCache() +{ + PatternTab::iterator i = pattern_tab.begin(); + + for( ; i != pattern_tab.end() ; ++i) + i->second.pattern.ClearCache(); +} + + + } // namespace Winix diff --git a/templates/patterncacher.h b/templates/patterncacher.h index fb2a156..ab8caec 100755 --- a/templates/patterncacher.h +++ b/templates/patterncacher.h @@ -92,6 +92,9 @@ public: // rebuild cache in all patterns void RebuildCache(); + // clearing all pointers to functions and blocks + void ClearCache(); + private: diff --git a/templates/templates.cpp b/templates/templates.cpp index 9840e0f..c6a620d 100755 --- a/templates/templates.cpp +++ b/templates/templates.cpp @@ -844,10 +844,8 @@ using namespace TemplatesFunctions; patterns.Clear(); index_patterns.Clear(); change_patterns.Clear(); + pattern_cacher.ClearCache(); ezc_blocks.Clear(); - - //a pattern cacher chyba tez powinien byc wyczyszczony (tylko tam jest jakies zabezpieczenie) - //bo moze miec skeszowane bloki.... pat_index = patterns.Add(config->templates_index); pat_index_fullscreen = patterns.Add(L"index_fullscreen.html"); // !! IMPROVE ME name to the config