[Python-Dev] PyMem_MALLOC vs PyMem_Malloc

Hirokazu Yamamoto ocean-city at m2.ccsnet.ne.jp
Mon Nov 1 16:12:47 CET 2010


On 2010年10月31日 2:32, M.-A. Lemburg wrote:
> M.-A. Lemburg wrote:
>> Hirokazu Yamamoto wrote:
>>> Hello. I found several codes using PyMem_Free to free
>>> allocated memory with PyMem_MALLOC (ie: PyUnicode_AsWideCharString)
>>>>>> Is it safe?
>>>> Within the interpreter: yes.
>>>> In extensions: depends on the platform, but probably not.
>>>> The macros provide faster access to the C lib malloc calls.
>>>> The functions need to be used in extensions in case the interpreter will
>> free the resource or the extension wants to free an interpreter
>> allocated resource. They provide access to the malloc calls
>> used by the interpreter, which may operate on a different heap
>> than the extensions.
>>>> Within an extension the macros use the extension heap.
>>>> A subtle, but important difference.
>> BTW: If you were referring to extensions using PyMem_Free()
> to deallocate memory allocated in the interpreter using
> PyMem_MALLOC(), then that's exactly how things should be
> done.
>> I was referring to use of the two mentioned APIs within
> an extension.

Thank you for reply, probably I could understand.


More information about the Python-Dev mailing list

AltStyle によって変換されたページ (->オリジナル) /