[PATCH 3 of 4] localrepo: use propertycaches to access encode/decode filters

Nicolas Dumazet nicdumz at gmail.com
Sun Oct 10 15:51:53 CDT 2010


# HG changeset patch
# User Nicolas Dumazet <nicdumz.commits at gmail.com>
# Date 1286729925 -7200
# Node ID 323badaa606b66e7cdd8090b089aaab46c1f8541
# Parent  c7e1849187ed8ee918610b21a8344ce1d8a66cac
localrepo: use propertycaches to access encode/decode filters

diff --git a/mercurial/localrepo.py b/mercurial/localrepo.py
--- a/mercurial/localrepo.py
+++ b/mercurial/localrepo.py
@@ -594,6 +594,14 @@
 
         return data
 
+    @propertycache
+    def _encodefilterpats(self):
+        return self._loadfilter('encode')
+
+    @propertycache
+    def _decodefilterpats(self):
+        return self._loadfilter('decode')
+
     def adddatafilter(self, name, filter):
         self._datafilters[name] = filter
 
@@ -602,10 +610,10 @@
             data = os.readlink(self.wjoin(filename))
         else:
             data = self.wopener(filename, 'r').read()
-        return self._filter(self._loadfilter("encode"), filename, data)
+        return self._filter(self._encodefilterpats, filename, data)
 
     def wwrite(self, filename, data, flags):
-        data = self._filter(self._loadfilter("decode"), filename, data)
+        data = self._filter(self._decodefilterpats, filename, data)
         try:
             os.unlink(self.wjoin(filename))
         except OSError:
@@ -618,7 +626,7 @@
                 util.set_flags(self.wjoin(filename), False, True)
 
     def wwritedata(self, filename, data):
-        return self._filter(self._loadfilter("decode"), filename, data)
+        return self._filter(self._decodefilterpats, filename, data)
 
     def transaction(self, desc):
         tr = self._transref and self._transref() or None


More information about the Mercurial-devel mailing list