25
25
* THE SOFTWARE.
26
26
*/
27
27
28
+ #include <assert.h>
28
29
#include <stdarg.h>
29
30
#include <stdio.h>
30
31
#include <string.h>
31
- #include <assert .h>
32
+ #include <unistd .h>
32
33
33
34
#include "py/parsenum.h"
34
35
#include "py/compile.h"
@@ -699,8 +700,8 @@ void mp_call_prepare_args_n_kw_var(bool have_self, size_t n_args_n_kw, const mp_
699
700
if (have_self ) {
700
701
self = * args ++ ; // may be MP_OBJ_NULL
701
702
}
702
- uint n_args = n_args_n_kw & 0xff ;
703
- uint n_kw = (n_args_n_kw >> 8 ) & 0xff ;
703
+ size_t n_args = n_args_n_kw & 0xff ;
704
+ size_t n_kw = (n_args_n_kw >> 8 ) & 0xff ;
704
705
mp_uint_t star_args = mp_obj_get_int_truncated (args [n_args + 2 * n_kw ]);
705
706
706
707
DEBUG_OP_printf ("call method var (fun=%p, self=%p, n_args=%u, n_kw=%u, args=%p, map=%u)\n" , fun , self , n_args , n_kw , args , star_args );
@@ -711,14 +712,14 @@ void mp_call_prepare_args_n_kw_var(bool have_self, size_t n_args_n_kw, const mp_
711
712
712
713
// The new args array
713
714
mp_obj_t * args2 ;
714
- uint args2_alloc ;
715
- uint args2_len = 0 ;
715
+ size_t args2_alloc ;
716
+ size_t args2_len = 0 ;
716
717
717
718
// Try to get a hint for unpacked * args length
718
- int list_len = 0 ;
719
+ ssize_t list_len = 0 ;
719
720
720
721
if (star_args != 0 ) {
721
- for (uint i = 0 ; i < n_args ; i ++ ) {
722
+ for (size_t i = 0 ; i < n_args ; i ++ ) {
722
723
if (star_args & (1 << i )) {
723
724
mp_obj_t len = mp_obj_len_maybe (args [i ]);
724
725
if (len != MP_OBJ_NULL ) {
@@ -730,9 +731,9 @@ void mp_call_prepare_args_n_kw_var(bool have_self, size_t n_args_n_kw, const mp_
730
731
}
731
732
732
733
// Try to get a hint for the size of the kw_dict
733
- int kw_dict_len = 0 ;
734
+ ssize_t kw_dict_len = 0 ;
734
735
735
- for (uint i = 0 ; i < n_kw ; i ++ ) {
736
+ for (size_t i = 0 ; i < n_kw ; i ++ ) {
736
737
mp_obj_t key = args [n_args + i * 2 ];
737
738
mp_obj_t value = args [n_args + i * 2 + 1 ];
738
739
if (key == MP_OBJ_NULL && value != MP_OBJ_NULL && mp_obj_is_type (value , & mp_type_dict )) {
@@ -770,7 +771,7 @@ void mp_call_prepare_args_n_kw_var(bool have_self, size_t n_args_n_kw, const mp_
770
771
args2 [args2_len ++ ] = self ;
771
772
}
772
773
773
- for (uint i = 0 ; i < n_args ; i ++ ) {
774
+ for (size_t i = 0 ; i < n_args ; i ++ ) {
774
775
mp_obj_t arg = args [i ];
775
776
if (star_args & (1 << i )) {
776
777
// star arg
@@ -811,18 +812,18 @@ void mp_call_prepare_args_n_kw_var(bool have_self, size_t n_args_n_kw, const mp_
811
812
}
812
813
813
814
// The size of the args2 array now is the number of positional args.
814
- uint pos_args_len = args2_len ;
815
+ size_t pos_args_len = args2_len ;
815
816
816
817
// ensure there is still enough room for kw args
817
818
if (args2_len + 2 * (n_kw + kw_dict_len ) > args2_alloc ) {
818
- uint new_alloc = args2_len + 2 * (n_kw + kw_dict_len );
819
+ size_t new_alloc = args2_len + 2 * (n_kw + kw_dict_len );
819
820
args2 = mp_nonlocal_realloc (args2 , args2_alloc * sizeof (mp_obj_t ),
820
821
new_alloc * sizeof (mp_obj_t ));
821
822
args2_alloc = new_alloc ;
822
823
}
823
824
824
825
// Copy the kw args.
825
- for (uint i = 0 ; i < n_kw ; i ++ ) {
826
+ for (size_t i = 0 ; i < n_kw ; i ++ ) {
826
827
mp_obj_t kw_key = args [n_args + i * 2 ];
827
828
mp_obj_t kw_value = args [n_args + i * 2 + 1 ];
828
829
if (kw_key == MP_OBJ_NULL ) {
@@ -859,7 +860,7 @@ void mp_call_prepare_args_n_kw_var(bool have_self, size_t n_args_n_kw, const mp_
859
860
while ((key = mp_iternext (iterable )) != MP_OBJ_STOP_ITERATION ) {
860
861
// expand size of args array if needed
861
862
if (args2_len + 1 >= args2_alloc ) {
862
- uint new_alloc = args2_alloc * 2 ;
863
+ size_t new_alloc = args2_alloc * 2 ;
863
864
args2 = mp_nonlocal_realloc (args2 , args2_alloc * sizeof (mp_obj_t ), new_alloc * sizeof (mp_obj_t ));
864
865
args2_alloc = new_alloc ;
865
866
}
0 commit comments