38
38
#include "zenoh-pico/system/platform.h"
39
39
#include "zenoh-pico/transport/multicast.h"
40
40
#include "zenoh-pico/transport/unicast.h"
41
+ #include "zenoh-pico/utils/endianness.h"
41
42
#include "zenoh-pico/utils/logging.h"
42
43
#include "zenoh-pico/utils/result.h"
43
44
#include "zenoh-pico/utils/uuid.h"
@@ -351,9 +352,7 @@ int8_t zp_bytes_deserialize_into_pair(const z_loaned_bytes_t *bytes, z_owned_byt
351
352
return _Z_ERR_SYSTEM_OUT_OF_MEMORY ;
352
353
}
353
354
// Extract first item size
354
- size_t first_len = 0 ;
355
- // FIXME: size endianness, Issue #420
356
- memcpy (& first_len , & bytes -> _slice .start [* curr_idx ], sizeof (uint32_t ));
355
+ size_t first_len = _z_host_le_load32 (& bytes -> _slice .start [* curr_idx ]);
357
356
* curr_idx += sizeof (uint32_t );
358
357
// Allocate first item bytes
359
358
* first -> _val = _z_bytes_make (first_len );
@@ -365,8 +364,7 @@ int8_t zp_bytes_deserialize_into_pair(const z_loaned_bytes_t *bytes, z_owned_byt
365
364
* curr_idx += first_len ;
366
365
367
366
// Extract second item size
368
- size_t second_len = 0 ;
369
- memcpy (& second_len , & bytes -> _slice .start [* curr_idx ], sizeof (uint32_t ));
367
+ size_t second_len = _z_host_le_load32 (& bytes -> _slice .start [* curr_idx ]);
370
368
* curr_idx += sizeof (uint32_t );
371
369
// Allocate second item bytes
372
370
* second -> _val = _z_bytes_make (second_len );
@@ -571,12 +569,11 @@ int8_t zp_bytes_serialize_from_pair(z_owned_bytes_t *bytes, z_owned_bytes_t *fir
571
569
size_t first_len = z_slice_len (& first -> _val -> _slice );
572
570
size_t second_len = z_slice_len (& second -> _val -> _slice );
573
571
// Copy data
574
- // FIXME: size endianness, Issue #420
575
- memcpy ((uint8_t * )& bytes -> _val -> _slice .start [* curr_idx ], & first_len , sizeof (uint32_t ));
572
+ _z_host_le_store32 ((uint32_t )first_len , (uint8_t * )& bytes -> _val -> _slice .start [* curr_idx ]);
576
573
* curr_idx += sizeof (uint32_t );
577
574
memcpy ((uint8_t * )& bytes -> _val -> _slice .start [* curr_idx ], z_slice_data (& first -> _val -> _slice ), first_len );
578
575
* curr_idx += first_len ;
579
- memcpy (( uint8_t * )& bytes -> _val -> _slice .start [* curr_idx ], & second_len , sizeof ( uint32_t ) );
576
+ _z_host_le_store32 (( uint32_t ) second_len , ( uint8_t * )& bytes -> _val -> _slice .start [* curr_idx ]);
580
577
* curr_idx += sizeof (uint32_t );
581
578
memcpy ((uint8_t * )& bytes -> _val -> _slice .start [* curr_idx ], z_slice_data (& second -> _val -> _slice ), second_len );
582
579
* curr_idx += second_len ;
0 commit comments