Hi cython-devel and Mark,
I was getting
> Fatal Python error: Acquisition count is 0 (line XYZ)
when I was doing
> cdef class MemViewContainer:
>     cdef double[:, :] A
>     
>     cdef a_method(self):
>         self.A = np.eye(2)
>         some_function(self.A.T)
>         some_function(self.A.T)

I have found out that it is caused by the self.A.T expression - Cython emits 
__PYX_XDEC_MEMVIEW() after the call, but no __PYX_INC_MEMVIEW() before the 
call. This doesn't happen if the memoryview is a function-local variable.

Proper test case is in the pull request [1] along with an ad-hoc patch that 
fixes the problem here, but needs review whether it is actually correct. I'd be 
very grateful if a fix for this problem could get it into Cython 0.19.

Cython version: 0.19b1 3a6b9856187d7e490e08

[1] https://github.com/cython/cython/pull/201

Regards,
                Matěj
_______________________________________________
cython-devel mailing list
cython-devel@python.org
http://mail.python.org/mailman/listinfo/cython-devel

Reply via email to