Hi, Am 04/21/2008 07:00 PM schrieb Robert Bradshaw: > When you write > > cdef char* s = x > > where x is a Python object, it sets s to a pointer of the data of s. > This is why you don't have to worry about allocating/deallocating s. > However, if you try to use s after x has gone out of scope/has been > garbage collected, s may contain garbage. Perhaps this is what's > happening here, and if that's the case you need to allocate s manually > and strcpy the contents of the string over.
I've also though of this, but that doesn't help, either. While trying
around a bit I've observed that I don't get a segfault if only C code is
used inside the function. Any Python code, even if not dealing with the
variables, results in a segfault. For example this means a segfault, too:
cdef public void plug_observ_data(plugDefinition *p, const_char_ptr i):
print "test"
Whereas
cdef public void plug_observ_data(plugDefinition *p, const_char_ptr i):
puts("test")
works without a problem.
Johannes
signature.asc
Description: OpenPGP digital signature
_______________________________________________ Cython-dev mailing list [email protected] http://codespeak.net/mailman/listinfo/cython-dev
