[PATCH 2 of 3] templater: resurrect cache of engine instance
Yuya Nishihara
yuya at tcha.org
Fri Jun 22 08:49:16 EDT 2018
# HG changeset patch
# User Yuya Nishihara <yuya at tcha.org>
# Date 1529587650 -32400
# Thu Jun 21 22:27:30 2018 +0900
# Node ID 9a00b95221eb92f0df923315911e61641a4e0054
# Parent dd2cf66485226a05fab5ef69edf975f2e51214e6
templater: resurrect cache of engine instance
The engine-level cache was effectively disabled at 48289eafb37d "templater:
drop extension point of engine classes (API)" by mistake, which made template
rendering quite slow.
Spotted by Martin von Zweigbergk.
diff --git a/mercurial/templater.py b/mercurial/templater.py
--- a/mercurial/templater.py
+++ b/mercurial/templater.py
@@ -872,6 +872,8 @@ class templater(object):
self.defaults = defaults
self._resources = resources
self._loader = loader(cache, aliases)
+ self._proc = engine(self._loader.load, self._filters, self.defaults,
+ self._resources)
self._minchunk, self._maxchunk = minchunk, maxchunk
@classmethod
@@ -923,8 +925,7 @@ class templater(object):
def generate(self, t, mapping):
"""Return a generator that renders the specified named template and
yields chunks"""
- proc = engine(self.load, self._filters, self.defaults, self._resources)
- stream = proc.process(t, mapping)
+ stream = self._proc.process(t, mapping)
if self._minchunk:
stream = util.increasingchunks(stream, min=self._minchunk,
max=self._maxchunk)
More information about the Mercurial-devel
mailing list