#
72bfb144 |
|
17-Jul-2019 |
Adrien Destugues <pulkomandy@pulkomandy.tk> |
PVS V1028: cast result of operation instead of operands If an overflow occurs before the cast, we can't fix it. If we cast first, we can rely on integer promotion to make the result use the appropriate size. Change-Id: I7462e28422456c07f179f94d39c10c408d9bec36 Reviewed-on: https://review.haiku-os.org/c/1623 Reviewed-by: waddlesplash <waddlesplash@gmail.com>
|
#
8f5130ed |
|
12-Jul-2014 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
package kit: Actually add support for B_HPKG_COMPRESSION_NONE Until now we always declared in the HPKG header that the package file is zlib compressed. For uncompressed files we would just store all individual chunks uncompressed. Now we handle completely uncompressed files slightly differently: We don't write the redundant chunk size table anymore. The size savings are minor, but it makes the uncompressed format read-streamable which may be handy.
|
#
e527b796 |
|
12-Jul-2014 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
Switch package file accessor classes to use BPositionIO * PackageFileHeap{Reader,Writer} as well as Package{Reader,Writer} and their implementation and super classes do now internally use a BPositionIO instead of a FD to access the package file. This provides more flexibility needed for features to come. * BPackageReader has already grown a new Init() version with a BPositionIO* parameter.
|
#
f5a20d5f |
|
07-Jul-2014 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
package kit: PackageFileHeapReader::Init(): Sanity checks Make sure the compressed/uncompressed heap size and the chunk size table look plausible, so we can rely on the values later. Fixes potential crashes for corrupt packages.
|
#
b3263ad3 |
|
30-Jun-2014 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
Switch package kit to BZlibCompressionAlgorithm ... and remove the Zlib{Compressor,Decompressor} API.
|
#
6a89a36a |
|
24-Jun-2014 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
Move package kit Zlib* classes to support kit Also move to B* namespace and no longer expose the zlib dependency in the headers.
|
#
1f633814 |
|
17-May-2013 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
hpkg format: compress the whole heap Instead of handling compression for individual file/attribute data we do now compress the whole heap where they are stored. This significantly improves compression ratios. We still divide the uncompressed data into 64 KiB chunks and use a chunk offset array for the compressed chunks to allow for quick random access without too much overhead. The tradeoff is a limited possible compression ratio -- i.e. we won't be as good as tar.gz (though surprisingly with my test archives we did better than zip). The other package file sections (package attributes and TOC) are no longer compressed individually. Their uncompressed data are simply pushed onto the heap where the usual compression strategy applies. To simplify things the repository format has been changed in the same manner although it doesn't otherwise use the heap, since it only stores meta data. Due to the data compression having been exposed in public and private API, this change touches a lot of package kit using code, including packagefs and the boot loader packagefs support. The latter two haven't been tested yet. Moreover packagefs needs a new kind of cache so we avoid re-reading the same heap chunk for two different data items it contains.
|
#
8f5130edfa454cc7ee21e4c3aef2a151f7c3c567 |
|
12-Jul-2014 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
package kit: Actually add support for B_HPKG_COMPRESSION_NONE Until now we always declared in the HPKG header that the package file is zlib compressed. For uncompressed files we would just store all individual chunks uncompressed. Now we handle completely uncompressed files slightly differently: We don't write the redundant chunk size table anymore. The size savings are minor, but it makes the uncompressed format read-streamable which may be handy.
|
#
e527b796319f21ca025f68e1964df140daa6de35 |
|
12-Jul-2014 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
Switch package file accessor classes to use BPositionIO * PackageFileHeap{Reader,Writer} as well as Package{Reader,Writer} and their implementation and super classes do now internally use a BPositionIO instead of a FD to access the package file. This provides more flexibility needed for features to come. * BPackageReader has already grown a new Init() version with a BPositionIO* parameter.
|
#
f5a20d5ff15b0153a8df4733ef28f5b3bc2b8489 |
|
07-Jul-2014 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
package kit: PackageFileHeapReader::Init(): Sanity checks Make sure the compressed/uncompressed heap size and the chunk size table look plausible, so we can rely on the values later. Fixes potential crashes for corrupt packages.
|
#
b3263ad3e1662cc419849a2d2cf539f9636613dc |
|
30-Jun-2014 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
Switch package kit to BZlibCompressionAlgorithm ... and remove the Zlib{Compressor,Decompressor} API.
|
#
6a89a36aa0ce6a53f9758ba767863ac6b4c6156c |
|
24-Jun-2014 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
Move package kit Zlib* classes to support kit Also move to B* namespace and no longer expose the zlib dependency in the headers.
|
#
1f633814fa347b0bd822f683af731615df600347 |
|
17-May-2013 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
hpkg format: compress the whole heap Instead of handling compression for individual file/attribute data we do now compress the whole heap where they are stored. This significantly improves compression ratios. We still divide the uncompressed data into 64 KiB chunks and use a chunk offset array for the compressed chunks to allow for quick random access without too much overhead. The tradeoff is a limited possible compression ratio -- i.e. we won't be as good as tar.gz (though surprisingly with my test archives we did better than zip). The other package file sections (package attributes and TOC) are no longer compressed individually. Their uncompressed data are simply pushed onto the heap where the usual compression strategy applies. To simplify things the repository format has been changed in the same manner although it doesn't otherwise use the heap, since it only stores meta data. Due to the data compression having been exposed in public and private API, this change touches a lot of package kit using code, including packagefs and the boot loader packagefs support. The latter two haven't been tested yet. Moreover packagefs needs a new kind of cache so we avoid re-reading the same heap chunk for two different data items it contains.
|