changeset 711:0cc3f1eabe13 experimental-match-fastpaths

revert an optimization that made a dumb assumption about when py:matches get stored..
author aflett
date Mon, 07 Apr 2008 17:15:00 +0000
parents 2a7a19861a89
children b33c14a1f579
files genshi/template/base.py genshi/template/directives.py
diffstat 2 files changed, 2 insertions(+), 5 deletions(-) [+]
line wrap: on
line diff
--- a/genshi/template/base.py
+++ b/genshi/template/base.py
@@ -25,6 +25,7 @@
 
 from genshi.core import Attrs, Stream, StreamEventKind, START, TEXT, _ensure
 from genshi.input import ParseError
+from genshi.template.match import MatchSet
 
 __all__ = ['Context', 'Template', 'TemplateError', 'TemplateRuntimeError',
            'TemplateSyntaxError', 'BadDirectiveError']
@@ -136,7 +137,7 @@
         self.frames = deque([data])
         self.pop = self.frames.popleft
         self.push = self.frames.appendleft
-        self._match_set = None
+        self._match_set = MatchSet()
         self._choice_stack = []
 
         # Helper functions for use in expressions
--- a/genshi/template/directives.py
+++ b/genshi/template/directives.py
@@ -457,10 +457,6 @@
     attach = classmethod(attach)
 
     def __call__(self, stream, directives, ctxt, **vars):
-        if ctxt._match_set is None:
-            # lazily create MatchSet so that it doesn't burden the
-            # _match filter when there are no py:matches defined.
-            ctxt._match_set = MatchSet()
         ctxt._match_set.add((self.path.test(ignore_context=True),
                              self.path, list(stream), self.hints,
                              self.namespaces, directives))
Copyright (C) 2012-2017 Edgewall Software