mercurial/revlog.py
changeset 47254 eac3591abbf4
parent 47253 b876f0bf7366
child 47255 ff9fd7107d11
--- a/mercurial/revlog.py	Mon May 03 19:46:25 2021 +0200
+++ b/mercurial/revlog.py	Mon May 03 21:04:55 2021 +0200
@@ -689,6 +689,20 @@
         # revlog.target instead of using `self.radix`
         return self.radix
 
+    def _get_decompressor(self, t):
+        try:
+            compressor = self._decompressors[t]
+        except KeyError:
+            try:
+                engine = util.compengines.forrevlogheader(t)
+                compressor = engine.revlogcompressor(self._compengineopts)
+                self._decompressors[t] = compressor
+            except KeyError:
+                raise error.RevlogError(
+                    _(b'unknown compression type %s') % binascii.hexlify(t)
+                )
+        return compressor
+
     @util.propertycache
     def _compressor(self):
         engine = util.compengines[self._compengine]
@@ -2375,17 +2389,7 @@
         elif t == b'u':
             return util.buffer(data, 1)
 
-        try:
-            compressor = self._decompressors[t]
-        except KeyError:
-            try:
-                engine = util.compengines.forrevlogheader(t)
-                compressor = engine.revlogcompressor(self._compengineopts)
-                self._decompressors[t] = compressor
-            except KeyError:
-                raise error.RevlogError(
-                    _(b'unknown compression type %s') % binascii.hexlify(t)
-                )
+        compressor = self._get_decompressor(t)
 
         return compressor.decompress(data)