##// END OF EJS Templates
flagprocessors: make `_processflagsfunc` a module level function...
marmoute -
r43259:50d9de61 default
parent child Browse files
Show More
@@ -118,7 +118,7 b' class flagprocessorsmixin(object):'
118 processed text and ``validatehash`` is a bool indicating whether the
118 processed text and ``validatehash`` is a bool indicating whether the
119 returned text should be checked for hash integrity.
119 returned text should be checked for hash integrity.
120 """
120 """
121 return self._processflagsfunc(text, flags, 'read')
121 return _processflagsfunc(self, text, flags, 'read')
122
122
123 def _processflagswrite(self, text, flags, sidedata):
123 def _processflagswrite(self, text, flags, sidedata):
124 """Inspect revision data flags and applies write transformations defined
124 """Inspect revision data flags and applies write transformations defined
@@ -136,7 +136,7 b' class flagprocessorsmixin(object):'
136 processed text and ``validatehash`` is a bool indicating whether the
136 processed text and ``validatehash`` is a bool indicating whether the
137 returned text should be checked for hash integrity.
137 returned text should be checked for hash integrity.
138 """
138 """
139 return self._processflagsfunc(text, flags, 'write',
139 return _processflagsfunc(self, text, flags, 'write',
140 sidedata=sidedata)[:2]
140 sidedata=sidedata)[:2]
141
141
142 def _processflagsraw(self, text, flags):
142 def _processflagsraw(self, text, flags):
@@ -155,9 +155,13 b' class flagprocessorsmixin(object):'
155 processed text and ``validatehash`` is a bool indicating whether the
155 processed text and ``validatehash`` is a bool indicating whether the
156 returned text should be checked for hash integrity.
156 returned text should be checked for hash integrity.
157 """
157 """
158 return self._processflagsfunc(text, flags, 'raw')[1]
158 return _processflagsfunc(self, text, flags, 'raw')[1]
159
159
160 def _processflagsfunc(self, text, flags, operation, sidedata=None):
160 def _processflagsfunc(revlog, text, flags, operation, sidedata=None):
161 """internal function to process flag on a revlog
162
163 This function is private to this module, code should never needs to call it
164 directly."""
161 # fast path: no flag processors will run
165 # fast path: no flag processors will run
162 if flags == 0:
166 if flags == 0:
163 return text, True, {}
167 return text, True, {}
@@ -166,7 +170,7 b' class flagprocessorsmixin(object):'
166 operation)
170 operation)
167 # Check all flags are known.
171 # Check all flags are known.
168 if flags & ~REVIDX_KNOWN_FLAGS:
172 if flags & ~REVIDX_KNOWN_FLAGS:
169 raise self._flagserrorclass(_("incompatible revision flag '%#x'") %
173 raise revlog._flagserrorclass(_("incompatible revision flag '%#x'") %
170 (flags & ~REVIDX_KNOWN_FLAGS))
174 (flags & ~REVIDX_KNOWN_FLAGS))
171 validatehash = True
175 validatehash = True
172 # Depending on the operation (read or write), the order might be
176 # Depending on the operation (read or write), the order might be
@@ -182,21 +186,21 b' class flagprocessorsmixin(object):'
182 if flag & flags:
186 if flag & flags:
183 vhash = True
187 vhash = True
184
188
185 if flag not in self._flagprocessors:
189 if flag not in revlog._flagprocessors:
186 message = _("missing processor for flag '%#x'") % (flag)
190 message = _("missing processor for flag '%#x'") % (flag)
187 raise self._flagserrorclass(message)
191 raise revlog._flagserrorclass(message)
188
192
189 processor = self._flagprocessors[flag]
193 processor = revlog._flagprocessors[flag]
190 if processor is not None:
194 if processor is not None:
191 readtransform, writetransform, rawtransform = processor
195 readtransform, writetransform, rawtransform = processor
192
196
193 if operation == 'raw':
197 if operation == 'raw':
194 vhash = rawtransform(self, text)
198 vhash = rawtransform(revlog, text)
195 elif operation == 'read':
199 elif operation == 'read':
196 text, vhash, s = readtransform(self, text)
200 text, vhash, s = readtransform(revlog, text)
197 outsidedata.update(s)
201 outsidedata.update(s)
198 else: # write operation
202 else: # write operation
199 text, vhash = writetransform(self, text, sidedata)
203 text, vhash = writetransform(revlog, text, sidedata)
200 validatehash = validatehash and vhash
204 validatehash = validatehash and vhash
201
205
202 return text, validatehash, outsidedata
206 return text, validatehash, outsidedata
General Comments 0
You need to be logged in to leave comments. Login now