[Spice-devel] [PATCH 2/6] LZ4: Implement ntohl to remove dependency on arpa/inet.h

Christophe Fergeau cfergeau at redhat.com
Fri Jan 23 07:40:42 PST 2015


Hey,

As this is not going to be built using MSVC, I don't think it's a huge
problem using ntohl. If you really don't want to use it, I'd favour
adding a dependency on glib, and using GUINT32_FROM_LE.

Christophe


On Thu, Jan 22, 2015 at 05:21:20PM +0100, Javier Celaya wrote:
> ---
>  common/canvas_base.c | 15 +++++++++++++--
>  1 file changed, 13 insertions(+), 2 deletions(-)
> 
> diff --git a/common/canvas_base.c b/common/canvas_base.c
> index cfbba5e..0f6b7f4 100644
> --- a/common/canvas_base.c
> +++ b/common/canvas_base.c
> @@ -27,7 +27,6 @@
>  #include <math.h>
>  
>  #ifdef USE_LZ4
> -#include <arpa/inet.h>
>  #include <lz4.h>
>  #endif
>  #include <spice/macros.h>
> @@ -548,6 +547,18 @@ static pixman_image_t *canvas_get_jpeg(CanvasBase *canvas, SpiceImage *image, in
>  }
>  
>  #ifdef USE_LZ4
> +static inline uint32_t lz4_decode32(uint8_t *buffer)
> +{
> +    // Network order -> big endian
> +    uint32_t value = 0;
> +    int i;
> +    for (i = 0; i < 4; ++i) {
> +        value <<= 8;
> +        value += buffer[i];
> +    }
> +    return value;
> +}
> +
>  static pixman_image_t *canvas_get_lz4(CanvasBase *canvas, SpiceImage *image, int invers)
>  {
>      pixman_image_t *surface = NULL;
> @@ -587,7 +598,7 @@ static pixman_image_t *canvas_get_lz4(CanvasBase *canvas, SpiceImage *image, int
>  
>      do {
>          // Read next compressed block
> -        enc_size = ntohl(*((uint32_t *)data));
> +        enc_size = lz4_decode32(data);
>          data += 4;
>          dec_size = LZ4_decompress_safe_continue(stream, (const char *) data,
>                                                  (char *) dest, enc_size, available);
> -- 
> 1.9.3
> 
> _______________________________________________
> Spice-devel mailing list
> Spice-devel at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/spice-devel
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 819 bytes
Desc: not available
URL: <http://lists.freedesktop.org/archives/spice-devel/attachments/20150123/d34d373b/attachment.sig>


More information about the Spice-devel mailing list