[Python-Dev] Interning string subtype instances
"Martin v. Löwis"
martin at v.loewis.de
Mon Feb 12 20:33:22 CET 2007
Mike Klaas schrieb:
>> cause problems for other users of the interned string. I agree with the
>> reasoning, but propose a different solution: when interning an instance
>> of a string subtype, PyString_InternInPlace could simply intern a copy.
>
> Interning currently requires an external reference to prevent garbage
> collection (I believe). What will hold a reference to the string
> copy?
For PyString_InternInPlace, the caller will receive a reference; the
original object passed in is decref'ed.
A typical caller of PyString_InternInPlace will just store the reference
in some global/static variable. builtin_intern will return it to the
caller, which then needs to store it. This was always the case with
intern(); the usage pattern is
foo = intern(foo)
as intern may return a different object (e.g. if the string was already
interned).
Regards,
Martin
More information about the Python-Dev
mailing list