diff --git a/templates/patterncacher.cpp b/templates/patterncacher.cpp index 903d0d6..8b8f659 100755 --- a/templates/patterncacher.cpp +++ b/templates/patterncacher.cpp @@ -221,10 +221,22 @@ void PatternCacher::RebuildCache(Ezc::Pattern & pattern) void PatternCacher::RebuildCache() { - 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