[Spice-devel] [PATCH 2/2] utils: fix endianess issues writing bitmap file and handle errors

Uri Lublin uril at redhat.com
Thu Dec 24 08:56:13 PST 2015


On 12/23/2015 06:42 PM, Jonathon Jongsma wrote:
> On Mon, 2015-12-21 at 11:28 +0000, Frediano Ziglio wrote:
>> Do not print directly binary data but serialize in a portable way
>> and then use write functions.
>> Also handle errors writing to file.
>> ---
>>   server/spice-bitmap-utils.c | 106 +++++++++++++++++++++++++++----------------
>> -
>>   1 file changed, 66 insertions(+), 40 deletions(-)
>>
>> diff --git a/server/spice-bitmap-utils.c b/server/spice-bitmap-utils.c
>> index 21d43bf..559b0de 100644
>> --- a/server/spice-bitmap-utils.c
>> +++ b/server/spice-bitmap-utils.c
>> @@ -137,22 +137,51 @@ int spice_bitmap_from_surface_type(uint32_t
>> surface_format)
>>
>>   #define RAM_PATH "/tmp/tmpfs"
>>
>> -static void dump_palette(FILE *f, SpicePalette* plt)
>> +static void put_16le(uint8_t **ptr, uint16_t val)
>> +{
>> +    **ptr = val & 0xffu;
>> +    (*ptr)++;
>> +    val >>= 8;
>> +    **ptr = val & 0xffu;
>> +    (*ptr)++;
>> +}
>> +
>> +static void put_32le(uint8_t **ptr, uint32_t val)
>> +{
>> +    put_16le(ptr, val & 0xffffu);
>> +    val >>= 16;
>> +    put_16le(ptr, val & 0xffffu);
>> +}
>> +
>> +#define write(buf, size) do { \
>> +    if (fwrite(buf, 1, (size), f) != (size)) \
>> +        goto write_err; \
>> +} while(0)
>
> I'd personally prefer that the FILE pointer was an argument to the macro and we
> didn't assume a variable named 'f'.
>

Also I prefer to rename the macro to not
shadow the write function.




More information about the Spice-devel mailing list