@@ -36,8 +36,8 @@ typedef struct {
3636 PyObject * key ;
3737 PyObject * file_repr ;
3838 PyObject * weakreflist ;
39- unsigned int num_transitions ;
40- unsigned int num_ttinfos ;
39+ size_t num_transitions ;
40+ size_t num_ttinfos ;
4141 int64_t * trans_list_utc ;
4242 int64_t * trans_list_wall [2 ];
4343 _ttinfo * * trans_ttinfos ; // References to the ttinfo for each transition
@@ -900,15 +900,15 @@ load_data(PyZoneInfo_ZoneInfo *self, PyObject *file_obj)
900900 goto error ;
901901 }
902902
903- self -> num_transitions = ( size_t ) num_transitions ;
904- self -> num_ttinfos = ( size_t ) num_ttinfos ;
903+ self -> num_transitions = num_transitions ;
904+ self -> num_ttinfos = num_ttinfos ;
905905
906906 // Load the transition indices and list
907907 self -> trans_list_utc =
908908 PyMem_Malloc (self -> num_transitions * sizeof (int64_t ));
909909 trans_idx = PyMem_Malloc (self -> num_transitions * sizeof (Py_ssize_t ));
910910
911- for (Py_ssize_t i = 0 ; i < self -> num_transitions ; ++ i ) {
911+ for (size_t i = 0 ; i < self -> num_transitions ; ++ i ) {
912912 PyObject * num = PyTuple_GetItem (trans_utc , i );
913913 if (num == NULL ) {
914914 goto error ;
@@ -946,7 +946,7 @@ load_data(PyZoneInfo_ZoneInfo *self, PyObject *file_obj)
946946 if (utcoff == NULL || isdst == NULL ) {
947947 goto error ;
948948 }
949- for (Py_ssize_t i = 0 ; i < self -> num_ttinfos ; ++ i ) {
949+ for (size_t i = 0 ; i < self -> num_ttinfos ; ++ i ) {
950950 PyObject * num = PyTuple_GetItem (utcoff_list , i );
951951 if (num == NULL ) {
952952 goto error ;
@@ -1737,13 +1737,13 @@ parse_transition_rule(const char *const p, TransitionRuleType **out)
17371737 // 3. Mm.n.d: Specifying by month, week and day-of-week.
17381738
17391739 if (* ptr == 'M' ) {
1740- uint8_t month , week , day ;
1740+ ssize_t month , week , day ;
17411741 ptr ++ ;
17421742 ssize_t tmp = parse_uint (ptr );
17431743 if (tmp < 0 ) {
17441744 return -1 ;
17451745 }
1746- month = ( uint8_t ) tmp ;
1746+ month = tmp ;
17471747 ptr ++ ;
17481748 if (* ptr != '.' ) {
17491749 tmp = parse_uint (ptr );
@@ -1756,7 +1756,7 @@ parse_transition_rule(const char *const p, TransitionRuleType **out)
17561756 ptr ++ ;
17571757 }
17581758
1759- uint8_t * values [2 ] = {& week , & day };
1759+ ssize_t * values [2 ] = {& week , & day };
17601760 for (size_t i = 0 ; i < 2 ; ++ i ) {
17611761 if (* ptr != '.' ) {
17621762 return -1 ;
0 commit comments