Skip to content

Commit 4ce2a20

Browse files
authored
gh-99300: Use Py_NewRef() in Parser/ directory (#99330)
Replace Py_INCREF() with Py_NewRef() in C files of the Parser/ directory and in the PEG generator.
1 parent 1e197e6 commit 4ce2a20

File tree

4 files changed

+5
-11
lines changed

4 files changed

+5
-11
lines changed

Parser/pegen.c

+2-4
Original file line numberDiff line numberDiff line change
@@ -885,8 +885,7 @@ _PyPegen_run_parser_from_file_pointer(FILE *fp, int start_rule, PyObject *filena
885885
tok->fp_interactive = 1;
886886
}
887887
// This transfers the ownership to the tokenizer
888-
tok->filename = filename_ob;
889-
Py_INCREF(filename_ob);
888+
tok->filename = Py_NewRef(filename_ob);
890889

891890
// From here on we need to clean up even if there's an error
892891
mod_ty result = NULL;
@@ -925,8 +924,7 @@ _PyPegen_run_parser_from_string(const char *str, int start_rule, PyObject *filen
925924
return NULL;
926925
}
927926
// This transfers the ownership to the tokenizer
928-
tok->filename = filename_ob;
929-
Py_INCREF(filename_ob);
927+
tok->filename = Py_NewRef(filename_ob);
930928

931929
// We need to clear up from here on
932930
mod_ty result = NULL;

Parser/string_parser.c

+1-3
Original file line numberDiff line numberDiff line change
@@ -417,9 +417,7 @@ fstring_compile_expr(Parser *p, const char *expr_start, const char *expr_end,
417417
PyMem_Free(str);
418418
return NULL;
419419
}
420-
Py_INCREF(p->tok->filename);
421-
422-
tok->filename = p->tok->filename;
420+
tok->filename = Py_NewRef(p->tok->filename);
423421
tok->lineno = t->lineno + lines - 1;
424422

425423
Parser *p2 = _PyPegen_Parser_New(tok, Py_fstring_input, p->flags, p->feature_version,

Parser/tokenizer.c

+1-2
Original file line numberDiff line numberDiff line change
@@ -2223,8 +2223,7 @@ _PyTokenizer_FindEncodingFilename(int fd, PyObject *filename)
22232223
return NULL;
22242224
}
22252225
if (filename != NULL) {
2226-
Py_INCREF(filename);
2227-
tok->filename = filename;
2226+
tok->filename = Py_NewRef(filename);
22282227
}
22292228
else {
22302229
tok->filename = PyUnicode_FromString("<string>");

Tools/peg_generator/peg_extension/peg_extension.c

+1-2
Original file line numberDiff line numberDiff line change
@@ -12,8 +12,7 @@ _build_return_object(mod_ty module, int mode, PyObject *filename_ob, PyArena *ar
1212
} else if (mode == 1) {
1313
result = PyAST_mod2obj(module);
1414
} else {
15-
result = Py_None;
16-
Py_INCREF(result);
15+
result = Py_NewRef(Py_None);
1716
}
1817

1918
return result;

0 commit comments

Comments
 (0)