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. -- Marc-Andre Lemburg eGenix.com Professional Python Services directly from the Source (#1, Oct 30 2010) >>> Python/Zope Consulting and Support ... http://www.egenix.com/ >>> mxODBC.Zope.Database.Adapter ... http://zope.egenix.com/ >>> mxODBC, mxDateTime, mxTextTools ... http://python.egenix.com/ ________________________________________________________________________ ::: Try our new mxODBC.Connect Python Database Interface for free ! :::: eGenix.com Software, Skills and Services GmbH Pastor-Loeh-Str.48 D-40764 Langenfeld, Germany. CEO Dipl.-Math. Marc-Andre Lemburg Registered at Amtsgericht Duesseldorf: HRB 46611 http://www.egenix.com/company/contact/ _______________________________________________ Python-Dev mailing list Python-Dev@python.org http://mail.python.org/mailman/listinfo/python-dev Unsubscribe: http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com