Skip to content

gh-99537: Use Py_SETREF() function in C code#99657

Merged
vstinner merged 1 commit intopython:mainfrom
vstinner:py_only_setref2
Nov 22, 2022
Merged

gh-99537: Use Py_SETREF() function in C code#99657
vstinner merged 1 commit intopython:mainfrom
vstinner:py_only_setref2

Conversation

@vstinner
Copy link
Member

@vstinner vstinner commented Nov 21, 2022

Fix potential race condition in code patterns:

  • Replace "Py_DECREF(var); var = new;" with "Py_SETREF(var, new);"
  • Replace "Py_XDECREF(var); var = new;" with "Py_XSETREF(var, new);"
  • Replace "Py_CLEAR(var); var = new;" with "Py_XSETREF(var, new);"

Other changes:

  • Replace "old = var; var = new; Py_DECREF(var)" with "Py_SETREF(var, new);"
  • Replace "old = var; var = new; Py_XDECREF(var)" with "Py_XSETREF(var, new);"
  • And remove the "old" variable.

Fix potential race condition in code patterns:

* Replace "Py_DECREF(var); var = new;" with "Py_SETREF(var, new);"
* Replace "Py_XDECREF(var); var = new;" with "Py_XSETREF(var, new);"
* Replace "Py_CLEAR(var); var = new;" with "Py_XSETREF(var, new);"

Other changes:

* Replace "old = var; var = new; Py_DECREF(var)"
  with "Py_SETREF(var, new);"
* Replace "old = var; var = new; Py_XDECREF(var)"
  with "Py_XSETREF(var, new);"
* And remove the "old" variable.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants