libopkg: store checksums in binary form, use integer index for architecture
authorJo-Philipp Wich <jo@mein.io>
Mon, 13 Feb 2017 17:07:04 +0000 (18:07 +0100)
committerJo-Philipp Wich <jo@mein.io>
Tue, 14 Feb 2017 15:36:28 +0000 (16:36 +0100)
commit9396bd4a4c84bde6b55ac3c47c90b4804e51adaf
tree2561d405b6f6995009277a5686df437593de1e37
parentba12c7133602244bb13dc026a78ea2fababb1967
libopkg: store checksums in binary form, use integer index for architecture

Instead of storing a copy of the architecture string and architecture
priority value in each pkg_t instance, declare a 3 bit wide field which
allows referencing the architecture in the global config array by index.

The 3 bit field allows referencing up to 8 different architectures which
is more than enough for the systems we target with opkg. Another nice side
effect is that we can coalesce this field with other flag values in pkg_t,
saving 4 bytes for an int member.

Also convert the hexadecimal checksums to binary format before storing them in
pkg_t's blob buffer to save 50% of the space per checksum.

Signed-off-by: Jo-Philipp Wich <jo@mein.io>
libopkg/file_util.c
libopkg/file_util.h
libopkg/opkg.c
libopkg/opkg_install.c
libopkg/pkg.c
libopkg/pkg.h
libopkg/pkg_depends.c
libopkg/pkg_hash.c
libopkg/pkg_parse.c
libopkg/pkg_vec.c
tests/libopkg_test.c