@@ -566,6 +566,8 @@ typedef union v64_uni { v64 v; u64 u; } v64_uni;
566
566
*============================================================================*/
567
567
568
568
#define byte_move_idx (x ) ((char *)dst)[x] = ((const char *)src)[x];
569
+ #define byte_move_src (x ) ((char *)tmp)[x] = ((const char *)src)[x];
570
+ #define byte_move_dst (x ) ((char *)dst)[x] = ((const char *)tmp)[x];
569
571
570
572
static_inline void byte_copy_2 (void * dst , const void * src ) {
571
573
#if !YYJSON_DISABLE_UNALIGNED_MEMORY_ACCESS
@@ -605,7 +607,9 @@ static_inline void byte_move_2(void *dst, const void *src) {
605
607
memcpy (& tmp , src , 2 );
606
608
memcpy (dst , & tmp , 2 );
607
609
#else
608
- repeat2_incr (byte_move_idx )
610
+ char tmp [2 ];
611
+ repeat2_incr (byte_move_src )
612
+ repeat2_incr (byte_move_dst )
609
613
#endif
610
614
}
611
615
@@ -615,7 +619,9 @@ static_inline void byte_move_4(void *dst, const void *src) {
615
619
memcpy (& tmp , src , 4 );
616
620
memcpy (dst , & tmp , 4 );
617
621
#else
618
- repeat4_incr (byte_move_idx )
622
+ char tmp [4 ];
623
+ repeat4_incr (byte_move_src )
624
+ repeat4_incr (byte_move_dst )
619
625
#endif
620
626
}
621
627
@@ -625,7 +631,9 @@ static_inline void byte_move_8(void *dst, const void *src) {
625
631
memcpy (& tmp , src , 8 );
626
632
memcpy (dst , & tmp , 8 );
627
633
#else
628
- repeat8_incr (byte_move_idx )
634
+ char tmp [8 ];
635
+ repeat8_incr (byte_move_src )
636
+ repeat8_incr (byte_move_dst )
629
637
#endif
630
638
}
631
639
@@ -639,7 +647,9 @@ static_inline void byte_move_16(void *dst, const void *src) {
639
647
memcpy (pdst , & tmp1 , 8 );
640
648
memcpy (pdst + 8 , & tmp2 , 8 );
641
649
#else
642
- repeat16_incr (byte_move_idx )
650
+ char tmp [16 ];
651
+ repeat16_incr (byte_move_src )
652
+ repeat16_incr (byte_move_dst )
643
653
#endif
644
654
}
645
655
@@ -700,7 +710,6 @@ static_inline u32 byte_load_4(const void *src) {
700
710
#if !YYJSON_DISABLE_UNALIGNED_MEMORY_ACCESS
701
711
memcpy (& uni , src , 4 );
702
712
#else
703
- v32_uni uni ;
704
713
uni .v .c [0 ] = ((const char * )src )[0 ];
705
714
uni .v .c [1 ] = ((const char * )src )[1 ];
706
715
uni .v .c [2 ] = ((const char * )src )[2 ];
0 commit comments