--- 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)