Review Request 128369: Handle multiple gzip streams in a single file
David Faure
faure at kde.org
Tue Jul 5 06:59:55 UTC 2016
> On July 4, 2016, 9:39 p.m., David Faure wrote:
> > src/kgzipfilter.cpp, line 331
> > <https://git.reviewboard.kde.org/r/128369/diff/1/?file=471082#file471082line331>
> >
> > This is where you could add something like
> > if (avail_in < 10) {
> > return Ok; // come back when we have more
> > }
> > if (readHeader()) { ... }
> > no?
>
> Martin Tobias Holmedahl Sandsmark wrote:
> Then we'd need to somehow save what we currently have in the buffer and concatenate with the next. I tested this with setting BUFFER_SIZE to 29 bytes (the stream in Sune's test file is 28 bytes).
>
> I don't really think handling an uncompressed stream after the compressed one is something we really need to care about, so just ignoring the header I think is good enough for now, or?
Ah right I thought we would get these bytes at the next iteration, but indeed that's now how next_in works.
OK.
- David
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://git.reviewboard.kde.org/r/128369/#review97103
-----------------------------------------------------------
On July 4, 2016, 10:33 p.m., Martin Tobias Holmedahl Sandsmark wrote:
>
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://git.reviewboard.kde.org/r/128369/
> -----------------------------------------------------------
>
> (Updated July 4, 2016, 10:33 p.m.)
>
>
> Review request for KDE Frameworks and Sune Vuorela.
>
>
> Repository: karchive
>
>
> Description
> -------
>
> Handle multiple gzip streams
>
> If kgzipfilter notices that zlib didn't read all the data, it tries to
> re-init the stream and read the rest of the buffer. This is tested by
> the unit test from Sune. The case where there's more than two streams
> available in the current buffer is tested in a unit test added
> separately.
>
> If the split between the streams falls right between two buffers, we
> need KCompressionDevice to notice that there's data left and try to
> continue decompressing. This is easy to test by setting BUFFER_SIZE to
> the size of the first stream in the unit test data (28 bytes).
>
>
> Diffs
> -----
>
> autotests/kfiltertest.cpp 4408dbe
> src/kcompressiondevice.cpp d6ecebd
> src/kgzipfilter.cpp 27a6d99
>
> Diff: https://git.reviewboard.kde.org/r/128369/diff/
>
>
> Testing
> -------
>
> The unit test now passes.
>
>
> Thanks,
>
> Martin Tobias Holmedahl Sandsmark
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.kde.org/pipermail/kde-frameworks-devel/attachments/20160705/e0a0526b/attachment.html>
More information about the Kde-frameworks-devel
mailing list