Ctypes and freeing memory

Oliver Andrich oliver.andrich at gmail.com
Fri Oct 6 14:40:13 EDT 2006


On 10/6/06, Thomas Heller <theller at python.net> wrote:
> Chris Mellon has already pointed out a possible solution, but there is also a
> different way.  You could use a subclass of c_char_p as the restype
> attribute:
>
> class String(c_char_p):
>     def __del__(self):
>         MagickRelinquishMemory(self)
>
> The difference is that you will receive an instance of this class
> when you call the MagickGetException funcion.  To access the 'char *'
> value, you can access the .value attribute (which is inherited from
> c_char_p), and to free the memory call MagickRelinquishMemory
> in the __del__ method.

These is an even better solution, cause it lets me drop one decorator,
I have been using at the moment, to handle these things.

Thanks a lot. ctypes is so much fun to use. Lately I had to use JNI,
and well, compared to this experience I am now in heaven. :) Sadly, I
can't provide my team members an equal solution in the Java world,
cause one of them starts to hate me for assigning him on another JNI
job in our project.

Best regards,
Oliver

-- 
Oliver Andrich <oliver.andrich at gmail.com> --- http://roughbook.de/



More information about the Python-list mailing list