diff options
-rw-r--r-- | src/exprbase.h | 4 | ||||
-rw-r--r-- | src/format.h | 9 |
2 files changed, 11 insertions, 2 deletions
diff --git a/src/exprbase.h b/src/exprbase.h index 7eee0398..83ef34ff 100644 --- a/src/exprbase.h +++ b/src/exprbase.h @@ -131,11 +131,11 @@ public: set_text(original_string ? *original_string : "<stream>"); } - void mark_uncompiled() { + virtual void mark_uncompiled() { compiled = false; } - void recompile(scope_t& scope) { + void recompile(scope_t& scope) { compiled = false; compile(scope); } diff --git a/src/format.h b/src/format.h index a0b95567..256dd66a 100644 --- a/src/format.h +++ b/src/format.h @@ -142,6 +142,15 @@ public: set_text(_format); } + virtual void mark_uncompiled() { + for (element_t * elem = elements.get(); elem; elem = elem->next.get()) { + if (elem->type == element_t::EXPR) { + expr_t& expr(boost::get<expr_t>(elem->data)); + expr.mark_uncompiled(); + } + } + } + virtual result_type real_calc(scope_t& scope); virtual void dump(std::ostream& out) const { |