[Spice-devel] [PATCH 1/2] utils: use always fwrite to write bitmap
Jonathon Jongsma
jjongsma at redhat.com
Wed Dec 23 07:36:46 PST 2015
On Mon, 2015-12-21 at 11:28 +0000, Frediano Ziglio wrote:
> Make easier to check error on next patch
> ---
> server/spice-bitmap-utils.c | 13 +++++--------
> 1 file changed, 5 insertions(+), 8 deletions(-)
>
> diff --git a/server/spice-bitmap-utils.c b/server/spice-bitmap-utils.c
> index 8d6e7c6..21d43bf 100644
> --- a/server/spice-bitmap-utils.c
> +++ b/server/spice-bitmap-utils.c
> @@ -147,17 +147,14 @@ static void dump_palette(FILE *f, SpicePalette* plt)
>
> static void dump_line(FILE *f, uint8_t* line, uint16_t n_pixel_bits, int
> width, int row_size)
> {
> - int i;
> + static char zeroes[4] = { 0 };
> int copy_bytes_size = SPICE_ALIGN(n_pixel_bits * width, 8) / 8;
>
> fwrite(line, 1, copy_bytes_size, f);
> - if (row_size > copy_bytes_size) {
> - // each line should be 4 bytes aligned
> - for (i = copy_bytes_size; i < row_size; i++) {
> - fprintf(f, "%c", 0);
> - }
> - }
> + // each line should be 4 bytes aligned
> + fwrite(zeroes, 1, row_size - copy_bytes_size, f);
It seems to me that we should have an assert or something here to ensure that we
don't read off the end of the zeroes array. Something like
assert(row_size - copy_bytes_size <= 4)
?
> }
> +
> void dump_bitmap(SpiceBitmap *bitmap)
> {
> static uint32_t file_id = 0;
> @@ -235,7 +232,7 @@ void dump_bitmap(SpiceBitmap *bitmap)
> }
>
> /* writing the bmp v3 header */
> - fprintf(f, "BM");
> + fwrite("BM", 2, 1, f);
This doesn't really seem to be a useful intermediate step toward the next patch.
The next patch changes it to put16le() and builds up a full header buffer that
it writes all at once. So I don't think that this hunk helps much.
> fwrite(&file_size, sizeof(file_size), 1, f);
> tmp_u16 = alpha ? 1 : 0;
> fwrite(&tmp_u16, sizeof(tmp_u16), 1, f); // reserved for application
More information about the Spice-devel
mailing list