bpo-45315: PyType_FromSpec: Copy spec->name and have the type own the memory for its name#29103
Conversation
… memory for its name
There was a problem hiding this comment.
For what its worth: These changes look good to me (and a very nice test!). I could wonder if it may still be sensible to point into ht_name since the name is probably identical except that it starts after the first .? (EDIT: Sorry wrong way around of course)
(My first thought was also a flag, but if we have to worry about users mutating it, that is indeed not an option.)
Sorry, something went wrong.
erlend-aasland
left a comment
There was a problem hiding this comment.
LGTM! I left some minor remarks. The added refactoring also looks good.
Sorry, something went wrong.
Co-authored-by: Erlend Egeberg Aasland <erlend.aasland@innova.no> Co-authored-by: Sebastian Berg <sebastian@sipsolutions.net>
|
Thank you for the reviews! @seberg You're retracing my thoughts :) I tried both pointing into ht_name and a flag, and it's very frustrating that they don't work :) |
Sorry, something went wrong.
* main: (263 commits) bpo-45521: Fix a bug in the obmalloc radix tree code. (pythonGH-29051) bpo-45522: Allow to disable freelists on build time (pythonGH-29056) bpo-34451: Document prompt and output toggle feature in html tutorial (pythonGH-27105) bpo-44019: Add operator.call() to __all__ for the operator module (pythonGH-29110) bpo-45315: PyType_FromSpec: Copy spec->name and have the type own the memory for its name (pythonGH-29103) bpo-44220: Export PyStructSequence_UnnamedField in the limited API (pythonGH-26331) bpo-44174: [Enum] add reference to name mangling (pythonGH-29116) bpo-45548: add some missing entries to `Modules/Setup` (pythonGH-29115) bpo-35673: Add a public alias for namespace package __loader__ attribute (python#29049) bpo-45192: Fix a bug that infers the type of an os.PathLike[bytes] object as str (pythonGH-28323) bpo-45527: Don't count cache hits, just misses. (pythonGH-29092) bpo-45320: Remove long-deprecated inspect methods (pythonGH-28618) bpo-41374: Remove obsolete exclusion of netinet/tcp.h on Cygwin (pythonGH-21649) bpo-45532: Replace 'default' with 'main' as default in sys.version (pythonGH-29100) bpo-45464: [doc] Explain that subclassing multiple exceptions is fragile (pythonGH-29094) Cleanup a couple of comments left on PR 28775 post-merge. (pythonGH-29079) bpo-45536: Check OpenSSL APIs in configure (pythonGH-29088) Add PEPs 593 & 647 to list of PEPs at top of typing docs (pythonGH-29097) Add a comment about how to fix bogus test_host_resolution_bad_address failures (python#29085) bpo-44525: Specialize simple Python calls. (pythonGH-29033) ...
Also includes a test for a type created from an ephemeral PyType_Spec.
(The original design assumed PyType_Spec structs would be static, but dynamic ones are useful and used in the wild.)
https://bugs.python.org/issue45315