@@ -23,20 +23,22 @@ static SECP256K1_INLINE size_t secp256k1_heap_child2(size_t i) {
23
23
return secp256k1_heap_child1 (i )+ 1 ;
24
24
}
25
25
26
- static SECP256K1_INLINE void secp256k1_heap_swap64 (unsigned char * a , size_t i , size_t j , size_t stride ) {
26
+ static SECP256K1_INLINE void secp256k1_heap_swap64 (unsigned char * a , size_t i , size_t j , size_t stride , size_t swap_size ) {
27
27
unsigned char tmp [64 ];
28
- VERIFY_CHECK (stride <= 64 );
29
- memcpy (tmp , a + i * stride , stride );
30
- memmove (a + i * stride , a + j * stride , stride );
31
- memcpy (a + j * stride , tmp , stride );
28
+ VERIFY_CHECK (swap_size <= 64 );
29
+ memcpy (tmp , a + i * stride , swap_size );
30
+ memmove (a + i * stride , a + j * stride , swap_size );
31
+ memcpy (a + j * stride , tmp , swap_size );
32
32
}
33
33
34
+ /* Swap the elements of a at indices i and j, assuming that the size of each element is stride. */
34
35
static SECP256K1_INLINE void secp256k1_heap_swap (unsigned char * a , size_t i , size_t j , size_t stride ) {
35
- while (64 < stride ) {
36
- secp256k1_heap_swap64 (a + (stride - 64 ), i , j , 64 );
37
- stride -= 64 ;
36
+ size_t remaining = stride ;
37
+ while (64 < remaining ) {
38
+ secp256k1_heap_swap64 (a + (remaining - 64 ), i , j , stride , 64 );
39
+ remaining -= 64 ;
38
40
}
39
- secp256k1_heap_swap64 (a , i , j , stride );
41
+ secp256k1_heap_swap64 (a , i , j , stride , remaining );
40
42
}
41
43
42
44
static SECP256K1_INLINE void secp256k1_heap_down (unsigned char * a , size_t i , size_t heap_size , size_t stride ,
0 commit comments