Hi Ralf,<br><br>Your post comes just on time! I implemented the memory managed arrays and noticed a serious problem with my capsule creation code (post I sent to the list about the update on the 12th of March in reply to Bill Spotz "Request code review of numpy.i changes"). For some reason, the code I wrote works under Linux (or at least on my 12.04 ubuntu machine) but crashes in Windows / mingw-64, something I just found out about this week.<br>
<br>Specifically, "SWIG_Python_DestroyModule" seems to be the wrong function call for the capsule and cobject destructor and I am really not sure why the code worked when I was using testing it on my Linux machine.<br>
<br>I should have a bit of time over the week-end to look into this and a couple of other things.<br><br>Anyway, for  PyCObject_FromVoidPtr(), the destructor should be a call to free() and for PyCapsule_New(), the destructor code should be a call to a free_cap() function with the following content:<br>
<br>%#ifdef SWIGPY_USE_CAPSULE<br>  void free_cap(PyObject * cap)<br>  {<br>    void* array = (void*) PyCapsule_GetPointer(cap,SWIGPY_CAPSULE_NAME);<br>    if (array != NULL) free(array);<br>  }<br>%#endif<br><br>This works both in Linux and Windows / mingw-64.<br>
<br>I'll ping the list when I'm done testing.<br><br>Kind regards,<br>Egor<br><br><div class="gmail_quote">On 4 June 2013 21:13, Ralf Gommers <span dir="ltr"><<a href="mailto:ralf.gommers@gmail.com" target="_blank">ralf.gommers@gmail.com</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div><div><div><div><div><div>Hi,<br><br></div>If you're using or are very familiar with SWIG and the numpy.i interface to it, please help to test and/or review <a href="https://github.com/numpy/numpy/pull/3148" target="_blank">https://github.com/numpy/numpy/pull/3148</a>. It's a fairly major update to numpy.i by Bill Spotz, containing the following:<br>

  - support for 4D arrays and memory managed output arguments<br></div>  - rework for the deprecated API's in numpy 1.6 and 1.7<br></div>  - a bug fix in a 3D typemap<br></div>  - documentation improvements<br><br></div>

It would be good to have this merged before branching 1.8.x. Not many of the regular reviewers of numpy PRs are familiar with numpy.i, therefore help would be much appreciated.<br><br></div>Thanks,<br>Ralf<br><br></div>
<br>_______________________________________________<br>
NumPy-Discussion mailing list<br>
<a href="mailto:NumPy-Discussion@scipy.org">NumPy-Discussion@scipy.org</a><br>
<a href="http://mail.scipy.org/mailman/listinfo/numpy-discussion" target="_blank">http://mail.scipy.org/mailman/listinfo/numpy-discussion</a><br>
<br></blockquote></div><br>