[Spice-devel] [PATCH 2/6] LZ4: Implement ntohl to remove dependency on arpa/inet.h
Javier Celaya
javier.celaya at flexvm.es
Mon Jan 26 00:23:58 PST 2015
I saw some comments about MSVC in spice-gtk, and I thought someone could be
using it to build the Windows client. Anyway, I don't mind using one solution
or another, so you tell me.
El Viernes, 23 de enero de 2015 16:40:42 Christophe Fergeau escribió:
> 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);
More information about the Spice-devel
mailing list