@@ -539,7 +539,7 @@ np_ubyte(char *p, PyObject *v, const formatdef *f)
539
539
"ubyte format requires 0 <= number <= 255" );
540
540
return -1 ;
541
541
}
542
- * p = (char )x ;
542
+ * ( unsigned char * ) p = (unsigned char )x ;
543
543
return 0 ;
544
544
}
545
545
@@ -868,6 +868,7 @@ bp_int(char *p, PyObject *v, const formatdef *f)
868
868
{
869
869
long x ;
870
870
Py_ssize_t i ;
871
+ unsigned char * q = (unsigned char * )p ;
871
872
if (get_long (v , & x ) < 0 )
872
873
return -1 ;
873
874
i = f -> size ;
@@ -880,7 +881,7 @@ bp_int(char *p, PyObject *v, const formatdef *f)
880
881
#endif
881
882
}
882
883
do {
883
- p [-- i ] = (char )x ;
884
+ q [-- i ] = (unsigned char )( x & 0xffL ) ;
884
885
x >>= 8 ;
885
886
} while (i > 0 );
886
887
return 0 ;
@@ -891,6 +892,7 @@ bp_uint(char *p, PyObject *v, const formatdef *f)
891
892
{
892
893
unsigned long x ;
893
894
Py_ssize_t i ;
895
+ unsigned char * q = (unsigned char * )p ;
894
896
if (get_ulong (v , & x ) < 0 )
895
897
return -1 ;
896
898
i = f -> size ;
@@ -901,7 +903,7 @@ bp_uint(char *p, PyObject *v, const formatdef *f)
901
903
RANGE_ERROR (x , f , 1 , maxint - 1 );
902
904
}
903
905
do {
904
- p [-- i ] = (char )x ;
906
+ q [-- i ] = (unsigned char )( x & 0xffUL ) ;
905
907
x >>= 8 ;
906
908
} while (i > 0 );
907
909
return 0 ;
@@ -1087,6 +1089,7 @@ lp_int(char *p, PyObject *v, const formatdef *f)
1087
1089
{
1088
1090
long x ;
1089
1091
Py_ssize_t i ;
1092
+ unsigned char * q = (unsigned char * )p ;
1090
1093
if (get_long (v , & x ) < 0 )
1091
1094
return -1 ;
1092
1095
i = f -> size ;
@@ -1099,7 +1102,7 @@ lp_int(char *p, PyObject *v, const formatdef *f)
1099
1102
#endif
1100
1103
}
1101
1104
do {
1102
- * p ++ = (char )x ;
1105
+ * q ++ = (unsigned char )( x & 0xffL ) ;
1103
1106
x >>= 8 ;
1104
1107
} while (-- i > 0 );
1105
1108
return 0 ;
@@ -1110,6 +1113,7 @@ lp_uint(char *p, PyObject *v, const formatdef *f)
1110
1113
{
1111
1114
unsigned long x ;
1112
1115
Py_ssize_t i ;
1116
+ unsigned char * q = (unsigned char * )p ;
1113
1117
if (get_ulong (v , & x ) < 0 )
1114
1118
return -1 ;
1115
1119
i = f -> size ;
@@ -1120,7 +1124,7 @@ lp_uint(char *p, PyObject *v, const formatdef *f)
1120
1124
RANGE_ERROR (x , f , 1 , maxint - 1 );
1121
1125
}
1122
1126
do {
1123
- * p ++ = (char )x ;
1127
+ * q ++ = (unsigned char )( x & 0xffUL ) ;
1124
1128
x >>= 8 ;
1125
1129
} while (-- i > 0 );
1126
1130
return 0 ;
0 commit comments