diff --git a/src/cache.cpp b/src/cache.cpp index 336090e..4125c39 100644 --- a/src/cache.cpp +++ b/src/cache.cpp @@ -35,10 +35,6 @@ * THE POSSIBILITY OF SUCH DAMAGE. */ - -#ifndef headerfile_ezc_cache -#define headerfile_ezc_cache - #include "cache.h" #include "blocks.h" @@ -86,5 +82,3 @@ void Cache(Blocks & blocks, Item & item) } // namespace Ezc - -#endif diff --git a/src/generator.h b/src/generator.h index 827d8a6..8aa2cd2 100755 --- a/src/generator.h +++ b/src/generator.h @@ -239,6 +239,8 @@ private: void ClearFilterTab(); void ClearForStack(); + void ClearBlockStack(); + void ClearStream(StreamType & str); void RemoveStackFunData(Stack & sitem); @@ -416,6 +418,7 @@ Generator::~Generator() { ClearFilterTab(); ClearForStack(); + ClearBlockStack(); } @@ -564,6 +567,16 @@ void Generator::ClearFilterTab() } +template +void Generator::ClearBlockStack() +{ + for(size_t i=0 ; i void Generator::ClearForStack() { diff --git a/src/item.cpp b/src/item.cpp index 710b22e..df8adf5 100755 --- a/src/item.cpp +++ b/src/item.cpp @@ -161,14 +161,20 @@ Item::~Item() } +void Item::ClearCache(Item::Function & function) +{ + function.fun_cache = 0; + function.item_block = 0; + + for(size_t i=0 ; iClearCache(); diff --git a/src/item.h b/src/item.h index 01edda4..36c4f43 100755 --- a/src/item.h +++ b/src/item.h @@ -146,6 +146,11 @@ struct Item void Clear(); void ClearCache(); + +private: + + void ClearCache(Item::Function & function); + };