PyUnicode_InternFromString does not immortalize the string as the document claims #133260
Labels
docs
Documentation in the Doc dir
interpreter-core
(Objects, Python, Grammar, and Parser dirs)
topic-C-API
type-bug
An unexpected behavior, bug, or error
Documentation
The document for
PyUnicode_InternFromString
currently claimed thatHowever, testing with simple code like,
suggests that the returned value is not, which is expected based on the code since it calls
_PyUnicode_InternMortal
rather than_PyUnicode_InternImmortal
. If a call to the internal APIPyUnicode_InternImmortal
was added (as in the commented out code above), then the string is indeed immortalized.This document was added in #121364 but that PR did not change the behavior of this function. AFAICT,
PyUnicode_InternFromString
never immortalize the string ever since it was added in #120520.The only public API that ever immortalized the input string appears to be
PyUnicode_InternInPlace
and that was changed in #121364 (the one that added the wrong doc) and there doesn't seem to be any public API that immortalize the string anymore. Although this is technically a document issue, I think it might be better to change the behavior of the function instead to match the document.The text was updated successfully, but these errors were encountered: