Просмотр исходного кода

Fix XDR functions for big-endian platforms

git-svn-id: https://svn.osgeo.org/grass/grass/trunk@52036 15284696-431f-4ddb-bdfa-cd5b030d7da7
Glynn Clements 13 лет назад
Родитель
Сommit
7a78e17562
1 измененных файлов с 3 добавлено и 2 удалено
  1. 3 2
      lib/raster/xdr.c

+ 3 - 2
lib/raster/xdr.c

@@ -1,4 +1,5 @@
 
 
+#include <stdlib.h>
 #include <grass/raster.h>
 #include <grass/raster.h>
 
 
 #include "R.h"
 #include "R.h"
@@ -13,7 +14,7 @@ static void swap_float(void *dstp, const void *srcp) {
 	dst[3] = src[0];
 	dst[3] = src[0];
     }
     }
     else
     else
-	*dst = *src;
+	memcpy(dst, src, 4);
 }
 }
 
 
 static void swap_double(void *dstp, const void *srcp) {
 static void swap_double(void *dstp, const void *srcp) {
@@ -30,7 +31,7 @@ static void swap_double(void *dstp, const void *srcp) {
 	dst[7] = src[0];
 	dst[7] = src[0];
     }
     }
     else
     else
-	*dst = *src;
+	memcpy(dst, src, 8);
 }
 }
 
 
 void Rast_xdr_get_float(float *dst, const void *src)
 void Rast_xdr_get_float(float *dst, const void *src)