# HG changeset patch # User Yuya Nishihara # Date 1529587650 -32400 # Node ID 256581484c7fc93a721ee2fb0b240cb6d957f421 # Parent f79237942dec07f95b5706156084fcda142cbfc2 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 -r f79237942dec -r 256581484c7f mercurial/templater.py --- a/mercurial/templater.py Thu Jun 21 22:23:43 2018 +0900 +++ b/mercurial/templater.py Thu Jun 21 22:27:30 2018 +0900 @@ -872,6 +872,8 @@ 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 @@ 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)