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