8000 bpo-40334: Don't downcast from Py_ssize_t to int (GH-19671) · python/cpython@ee40e4b · GitHub
[go: up one dir, main page]

Skip to content

Commit ee40e4b

Browse files
authored
bpo-40334: Don't downcast from Py_ssize_t to int (GH-19671)
1 parent 0b7829e commit ee40e4b

File tree

2 files changed

+22
-22
lines changed

2 files changed

+22
-22
lines changed

Parser/pegen/pegen.c

Lines changed: 21 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -247,7 +247,7 @@ tokenizer_error_with_col_offset(Parser *p, PyObject *errtype, const char *errmsg
247247
{
248248
PyObject *errstr = NULL;
249249
PyObject *value = NULL;
250-
int col_number = -1;
250+
size_t col_number = -1;
251251

252252
errstr = PyUnicode_FromString(errmsg);
253253
if (!errstr) {
@@ -552,8 +552,8 @@ _PyPegen_fill_token(Parser *p)
552552

553553
int lineno = type == STRING ? p->tok->first_lineno : p->tok->lineno;
554554
const char *line_start = type == STRING ? p->tok->multi_line_start : p->tok->line_start;
555-
int end_lineno = p->tok->lineno;
556-
int col_offset = -1, end_col_offset = -1;
555+
size_t end_lineno = p->tok->lineno;
556+
size_t col_offset = -1, end_col_offset = -1;
557557
if (start != NULL && start >= line_start) {
558558
col_offset = start - line_start;
559559
}
@@ -1066,16 +1066,16 @@ _PyPegen_seq_insert_in_front(Parser *p, void *a, asdl_seq *seq)
10661066
}
10671067

10681068
asdl_seq_SET(new_seq, 0, a);
1069-
for (int i = 1, l = asdl_seq_LEN(new_seq); i < l; i++) {
1069+
for (Py_ssize_t i = 1, l = asdl_seq_LEN(new_seq); i < l; i++) {
10701070
asdl_seq_SET(new_seq, i, asdl_seq_GET(seq, i - 1));
10711071
}
10721072
return new_seq;
10731073
}
10741074

1075-
static int
1075+
static Py_ssize_t
10761076
_get_flattened_seq_size(asdl_seq *seqs)
10771077
{
1078-
int size = 0;
1078+
Py_ssize_t size = 0;
10791079
for (Py_ssize_t i = 0, l = asdl_seq_LEN(seqs); i < l; i++) {
10801080
asdl_seq *inner_seq = asdl_seq_GET(seqs, i);
10811081
size += asdl_seq_LEN(inner_seq);
@@ -1087,7 +1087,7 @@ _get_flattened_seq_size(asdl_seq *seqs)
10871087
asdl_seq *
10881088
_PyPegen_seq_flatten(Parser *p, asdl_seq *seqs)
10891089
{
1090-
int flattened_seq_size = _get_flattened_seq_size(seqs);
1090+
Py_ssize_t flattened_seq_size = _get_flattened_seq_size(seqs);
10911091
assert(flattened_seq_size > 0);
10921092

10931093
asdl_seq *flattened_seq = _Py_asdl_seq_new(flattened_seq_size, p->arena);
@@ -1098,7 +1098,7 @@ _PyPegen_seq_flatten(Parser *p, asdl_seq *seqs)
10981098
int flattened_seq_idx = 0;
10991099
for (Py_ssize_t i = 0, l = asdl_seq_LEN(seqs); i < l; i++) {
11001100
asdl_seq *inner_seq = asdl_seq_GET(seqs, i);
1101-
for (int j = 0, li = asdl_seq_LEN(inner_seq); j < li; j++) {
1101+
for (Py_ssize_t j = 0, li = asdl_seq_LEN(inner_seq); j < li; j++) {
11021102
asdl_seq_SET(flattened_seq, flattened_seq_idx++, asdl_seq_GET(inner_seq, j));
11031103
}
11041104
}
@@ -1203,7 +1203,7 @@ _PyPegen_alias_for_star(Parser *p)
12031203
asdl_seq *
12041204
_PyPegen_map_names_to_ids(Parser *p, asdl_seq *seq)
12051205
{
1206-
int len = asdl_seq_LEN(seq);
1206+
Py_ssize_t len = asdl_seq_LEN(seq);
12071207
assert(len > 0);
12081208

12091209
asdl_seq *new_seq = _Py_asdl_seq_new(len, p->arena);
@@ -1234,7 +1234,7 @@ _PyPegen_cmpop_expr_pair(Parser *p, cmpop_ty cmpop, expr_ty expr)
12341234
asdl_int_seq *
12351235
_PyPegen_get_cmpops(Parser *p, asdl_seq *seq)
12361236
{
1237-
int len = asdl_seq_LEN(seq);
1237+
Py_ssize_t len = asdl_seq_LEN(seq);
12381238
assert(len > 0);
12391239

12401240
asdl_int_seq *new_seq = _Py_asdl_int_seq_new(len, p->arena);
@@ -1251,7 +1251,7 @@ _PyPegen_get_cmpops(Parser *p, asdl_seq *seq)
12511251
asdl_seq *
12521252
_PyPegen_get_exprs(Parser *p, asdl_seq *seq)
12531253
{
1254-
int len = asdl_seq_LEN(seq);
1254+
Py_ssize_t len = asdl_seq_LEN(seq);
12551255
assert(len > 0);
12561256

12571257
asdl_seq *new_seq = _Py_asdl_seq_new(len, p->arena);
@@ -1269,7 +1269,7 @@ _PyPegen_get_exprs(Parser *p, asdl_seq *seq)
12691269
static asdl_seq *
12701270
_set_seq_context(Parser *p, asdl_seq *seq, expr_context_ty ctx)
12711271
{
1272-
int len = asdl_seq_LEN(seq);
1272+
Py_ssize_t len = asdl_seq_LEN(seq);
12731273
if (len == 0) {
12741274
return NULL;
12751275
}
@@ -1370,7 +1370,7 @@ _PyPegen_key_value_pair(Parser *p, expr_ty key, expr_ty value)
13701370
asdl_seq *
13711371
_PyPegen_get_keys(Parser *p, asdl_seq *seq)
13721372
{
1373-
int len = asdl_seq_LEN(seq);
1373+
Py_ssize_t len = asdl_seq_LEN(seq);
13741374
asdl_seq *new_seq = _Py_asdl_seq_new(len, p->arena);
13751375
if (!new_seq) {
13761376
return NULL;
@@ -1386,7 +1386,7 @@ _PyPegen_get_keys(Parser *p, asdl_seq *seq)
13861386
asdl_seq *
13871387
_PyPegen_get_values(Parser *p, asdl_seq *seq)
13881388
{
1389-
int len = asdl_seq_LEN(seq);
1389+
Py_ssize_t len = asdl_seq_LEN(seq);
13901390
asdl_seq *new_seq = _Py_asdl_seq_new(len, p->arena);
13911391
if (!new_seq) {
13921392
return NULL;
@@ -1441,8 +1441,8 @@ _PyPegen_star_etc(Parser *p, arg_ty vararg, asdl_seq *kwonlyargs, arg_ty kwarg)
14411441
asdl_seq *
14421442
_PyPegen_join_sequences(Parser *p, asdl_seq *a, asdl_seq *b)
14431443
{
1444-
int first_len = asdl_seq_LEN(a);
1445-
int second_len = asdl_seq_LEN(b);
1444+
Py_ssize_t first_len = asdl_seq_LEN(a);
1445+
Py_ssize_t second_len = asdl_seq_LEN(b);
14461446
asdl_seq *new_seq = _Py_asdl_seq_new(first_len + second_len, p->arena);
14471447
if (!new_seq) {
14481448
return NULL;
@@ -1462,7 +1462,7 @@ _PyPegen_join_sequences(Parser *p, asdl_seq *a, asdl_seq *b)
14621462
static asdl_seq *
14631463
_get_names(Parser *p, asdl_seq *names_with_defaults)
14641464
{
1465-
int len = asdl_seq_LEN(names_with_defaults);
1465+
Py_ssize_t len = asdl_seq_LEN(names_with_defaults);
14661466
asdl_seq *seq = _Py_asdl_seq_new(len, p->arena);
14671467
if (!seq) {
14681468
return NULL;
@@ -1477,7 +1477,7 @@ _get_names(Parser *p, asdl_seq *names_with_defaults)
14771477
static asdl_seq *
14781478
_get_defaults(Parser *p, asdl_seq *names_with_defaults)
14791479
{
1480-
int len = asdl_seq_LEN(names_with_defaults);
1480+
Py_ssize_t len = asdl_seq_LEN(names_with_defaults);
14811481
asdl_seq *seq = _Py_asdl_seq_new(len, p->arena);
14821482
if (!seq) {
14831483
return NULL;
@@ -1750,8 +1750,8 @@ _PyPegen_seq_extract_starred_exprs(Parser *p, asdl_seq *kwargs)
17501750
asdl_seq *
17511751
_PyPegen_seq_delete_starred_exprs(Parser *p, asdl_seq *kwargs)
17521752
{
1753-
int len = asdl_seq_LEN(kwargs);
1754-
int new_len = len - _seq_number_of_starred_exprs(kwargs);
1753+
Py_ssize_t len = asdl_seq_LEN(kwargs);
1754+
Py_ssize_t new_len = len - _seq_number_of_starred_exprs(kwargs);
17551755
if (new_len == 0) {
17561756
return NULL;
17571757
}
@@ -1773,7 +1773,7 @@ _PyPegen_seq_delete_starred_exprs(Parser *p, asdl_seq *kwargs)
17731773
expr_ty
17741774
_PyPegen_concatenate_strings(Parser *p, asdl_seq *strings)
17751775
{
1776-
int len = asdl_seq_LEN(strings);
1776+
Py_ssize_t len = asdl_seq_LEN(strings);
17771777
assert(len > 0);
17781778

17791779
Token *first = asdl_seq_GET(strings, 0);

Python/compile.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2177,7 +2177,7 @@ static int
21772177
compiler_check_debug_args_seq(struct compiler *c, asdl_seq *args)
21782178
{
21792179
if (args != NULL) {
2180-
for (int i = 0, n = asdl_seq_LEN(args); i < n; i++) {
2180+
for (Py_ssize_t i = 0, n = asdl_seq_LEN(args); i < n; i++) {
21812181
if (!compiler_check_debug_one_arg(c, asdl_seq_GET(args, i)))
21822182
return 0;
21832183
}

0 commit comments

Comments
 (0)
0