From e3064b952029a4fe8f7b65442d23e1112f26bb5f Mon Sep 17 00:00:00 2001 From: John Wiegley Date: Sat, 14 Nov 2009 03:45:18 -0500 Subject: Spot optimization for simple automated xact exprs This reduces parsing time in the optimized build by 25%, and was a safe, easy patch. If the "quick predicate evaluator" fails, we disable it from that point on go back to what the standard code does. --- src/xact.h | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) (limited to 'src/xact.h') diff --git a/src/xact.h b/src/xact.h index fe748fcc..07f9a6c7 100644 --- a/src/xact.h +++ b/src/xact.h @@ -146,16 +146,18 @@ class auto_xact_t : public xact_base_t { public: predicate_t predicate; + bool try_quick_match; - auto_xact_t() { + auto_xact_t() : try_quick_match(true) { TRACE_CTOR(auto_xact_t, ""); } auto_xact_t(const auto_xact_t& other) - : xact_base_t(), predicate(other.predicate) { + : xact_base_t(), predicate(other.predicate), + try_quick_match(other.try_quick_match) { TRACE_CTOR(auto_xact_t, "copy"); } auto_xact_t(const predicate_t& _predicate) - : predicate(_predicate) + : predicate(_predicate), try_quick_match(true) { TRACE_CTOR(auto_xact_t, "const predicate_t&"); } -- cgit v1.2.3