##// END OF EJS Templates
bundle2: inline changegroup.readexactly()...
Gregory Szorc -
r35115:1fb0846a default
parent child Browse files
Show More
@@ -1198,13 +1198,21 b' def decodepayloadchunks(ui, fh):'
1198
1198
1199 headersize = struct.calcsize(_fpayloadsize)
1199 headersize = struct.calcsize(_fpayloadsize)
1200 readexactly = changegroup.readexactly
1200 readexactly = changegroup.readexactly
1201 read = fh.read
1201
1202
1202 chunksize = _unpack(_fpayloadsize, readexactly(fh, headersize))[0]
1203 chunksize = _unpack(_fpayloadsize, readexactly(fh, headersize))[0]
1203 indebug(ui, 'payload chunk size: %i' % chunksize)
1204 indebug(ui, 'payload chunk size: %i' % chunksize)
1204
1205
1206 # changegroup.readexactly() is inlined below for performance.
1205 while chunksize:
1207 while chunksize:
1206 if chunksize >= 0:
1208 if chunksize >= 0:
1207 yield readexactly(fh, chunksize)
1209 s = read(chunksize)
1210 if len(s) < chunksize:
1211 raise error.Abort(_('stream ended unexpectedly '
1212 ' (got %d bytes, expected %d)') %
1213 (len(s), chunksize))
1214
1215 yield s
1208 elif chunksize == flaginterrupt:
1216 elif chunksize == flaginterrupt:
1209 # Interrupt "signal" detected. The regular stream is interrupted
1217 # Interrupt "signal" detected. The regular stream is interrupted
1210 # and a bundle2 part follows. Consume it.
1218 # and a bundle2 part follows. Consume it.
@@ -1213,7 +1221,13 b' def decodepayloadchunks(ui, fh):'
1213 raise error.BundleValueError(
1221 raise error.BundleValueError(
1214 'negative payload chunk size: %s' % chunksize)
1222 'negative payload chunk size: %s' % chunksize)
1215
1223
1216 chunksize = _unpack(_fpayloadsize, readexactly(fh, headersize))[0]
1224 s = read(headersize)
1225 if len(s) < headersize:
1226 raise error.Abort(_('stream ended unexpectedly '
1227 ' (got %d bytes, expected %d)') %
1228 (len(s), chunksize))
1229
1230 chunksize = _unpack(_fpayloadsize, s)[0]
1217
1231
1218 # indebug() inlined for performance.
1232 # indebug() inlined for performance.
1219 if dolog:
1233 if dolog:
General Comments 0
You need to be logged in to leave comments. Login now