[Spice-devel] [PATCH 2/6] LZ4: Implement ntohl to remove dependency on arpa/inet.h
Javier Celaya
javier.celaya at flexvm.es
Thu Jan 22 08:21:20 PST 2015
---
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
More information about the Spice-devel
mailing list