Dave Jarvis' Repositories

git clone https://repo.autonoma.ca/repo/treetrek.git
git/DeltaDecoder.php
mixed $base
): Generator {
- $stream = CompressionStream::createInflater();
- $state = 0;
- $buffer = '';
- $isFile = is_resource( $base );
+ $stream = CompressionStream::createInflater();
+ $state = 0;
+ $buffer = '';
+ $yieldBuffer = '';
+ $isFile = is_resource( $base );
foreach( $stream->stream( $handle ) as $data ) {
$rem = 0;
} else {
- yield $slc;
+ $yieldBuffer .= $slc;
+ $rem -= strlen( $slc );
- $rem -= strlen( $slc );
+ if( strlen( $yieldBuffer ) >= 8192 ) {
+ yield $yieldBuffer;
+
+ $yieldBuffer = '';
+ }
}
}
} else {
- yield substr( $base, $info['off'], $info['len'] );
+ $yieldBuffer .= substr( $base, $info['off'], $info['len'] );
+
+ if( strlen( $yieldBuffer ) >= 8192 ) {
+ yield $yieldBuffer;
+
+ $yieldBuffer = '';
+ }
}
if( !$doneBuffer ) {
- yield substr( $buffer, 1, $ln );
+ $yieldBuffer .= substr( $buffer, 1, $ln );
+ $buffer = substr( $buffer, 1 + $ln );
- $buffer = substr( $buffer, 1 + $ln );
+ if( strlen( $yieldBuffer ) >= 8192 ) {
+ yield $yieldBuffer;
+
+ $yieldBuffer = '';
+ }
}
}
}
}
}
+ }
+
+ if( $yieldBuffer !== '' ) {
+ yield $yieldBuffer;
}
}

Buffers extracted delta chunks

Author Dave Jarvis <email>
Date 2026-02-21 12:25:11 GMT-0800
Commit ba246b06a393ff353ced12dbadb7f70583002e52
Parent 40ac75b
Delta 30 lines added, 9 lines removed, 21-line increase