[Python-Dev] PyObject_REPR()
Raymond Hettinger
rhettinger at ewtllc.com
Mon Apr 17 18:03:53 CEST 2006
If PyObject_REPR changes or gets renamed in Py2.5, I suggest modifying
the implementation so that it returns a newly allocated C pointer rather
one embedded in an inaccessible (unfreeable) PyStringObject. Roughly:
r = PyObject_Repr(o);
if (r == NULL)
return NULL;
s1 = PyObject_AS_STRING(r);
s2 = strcpy(s1);
Py_DECREF(r);
return s2;
The benefits are:
* it won't throw-off leak checking (no Python objects get leaked)
* the leak is slightly smaller (only the allocated string)
* if the caller cares about memory, they have the option of freeing the
returned pointer
* error-checking is still possible.
Neal Norwitz wrote:
>Ok, then how about prefixing with _, adding a comment saying in big,
>bold letters: FOR DEBUGGING PURPOSES ONLY, THIS LEAKS, and only
>defining in a debug build?
>
>n
>--
>On 4/11/06, Jeremy Hylton <jeremy at alum.mit.edu> wrote:
>
>
>>It's intended as an internal debugging API. I find it very convenient
>>for adding with a printf() here and there, which is how it got added
>>long ago. It should really have a comment mentioning that it leaks
>>the repr object, and starting with an _ wouldn't be bad either.
>>
>>Jeremy
>>
>>On 4/11/06, Neal Norwitz <nnorwitz at gmail.com> wrote:
>>
>>
>>>On 4/11/06, Raymond Hettinger <raymond.hettinger at verizon.net> wrote:
>>>
>>>
>>>>>It strikes me that it should not be used, or maybe renamed to _PyObject_REPR.
>>>>>Should removing or renaming it be done in 2.5 or in Py3K?
>>>>>
>>>>>
>>>>Since it is intrinsically buggy, I would support removal in Py2.5
>>>>
>>>>
>>>+1 on removal. Google only turned up a handleful of uses that I saw.
>>>
>>>n
>>>_______________________________________________
>>>Python-Dev mailing list
>>>Python-Dev at python.org
>>>http://mail.python.org/mailman/listinfo/python-dev
>>>Unsubscribe: http://mail.python.org/mailman/options/python-dev/jeremy%40alum.mit.edu
>>>
>>>
>>>
>_______________________________________________
>Python-Dev mailing list
>Python-Dev at python.org
>http://mail.python.org/mailman/listinfo/python-dev
>Unsubscribe: http://mail.python.org/mailman/options/python-dev/rhettinger%40ewtllc.com
>
>
More information about the Python-Dev
mailing list