flagprocessors: return flagdata in the main processing function
authorPierre-Yves David <pierre-yves.david@octobus.net>
Wed, 04 Sep 2019 00:13:45 +0200
changeset 42984 66dc5a522f37
parent 42983 a45d670c2bfc
child 42985 bd5858c28bbe
flagprocessors: return flagdata in the main processing function This function input and return are becoming stranger and stranger bnut I don't have a good plan to make is saner without problematic code duplication, so it will be this way to now. Differential Revision: https://phab.mercurial-scm.org/D6812
mercurial/revlogutils/flagutil.py
--- a/mercurial/revlogutils/flagutil.py	Tue Sep 03 22:55:04 2019 +0200
+++ b/mercurial/revlogutils/flagutil.py	Wed Sep 04 00:13:45 2019 +0200
@@ -118,8 +118,7 @@
         processed text and ``validatehash`` is a bool indicating whether the
         returned text should be checked for hash integrity.
         """
-        text, vhash = self._processflagsfunc(text, flags, 'read')
-        return text, vhash, {}
+        return self._processflagsfunc(text, flags, 'read')
 
     def _processflagswrite(self, text, flags):
         """Inspect revision data flags and applies write transformations defined
@@ -137,7 +136,7 @@
         processed text and ``validatehash`` is a bool indicating whether the
         returned text should be checked for hash integrity.
         """
-        return self._processflagsfunc(text, flags, 'write')
+        return self._processflagsfunc(text, flags, 'write')[:2]
 
     def _processflagsraw(self, text, flags):
         """Inspect revision data flags to check is the content hash should be
@@ -160,7 +159,7 @@
     def _processflagsfunc(self, text, flags, operation):
         # fast path: no flag processors will run
         if flags == 0:
-            return text, True
+            return text, True, {}
         if operation not in ('read', 'write', 'raw'):
             raise error.ProgrammingError(_("invalid '%s' operation") %
                                          operation)
@@ -175,6 +174,7 @@
         if operation == 'write':
             orderedflags = reversed(orderedflags)
 
+        outsidedata = {}
         for flag in orderedflags:
             # If a flagprocessor has been registered for a known flag, apply the
             # related operation transform and update result tuple.
@@ -197,4 +197,4 @@
                         text, vhash = writetransform(self, text)
                 validatehash = validatehash and vhash
 
-        return text, validatehash
+        return text, validatehash, outsidedata