On 2021-11-23 17:31, MRAB wrote:
On 2021-11-23 16:04, Arnaud Loonstra wrote:
[snip]
I would turn my attention to s_py_zosc function but I'm not sure. Since
the errors are GC related it could caused anywhere?

Basically, yes, but I won't be surprised if it was due to too few
INCREFs or too many DECREFs somewhere.

https://github.com/hku-ect/gazebosc/blob/505b30c46bf3f78d188c3f575c80e294d3db7e5d/Actors/pythonactor.c#L286

Incidentally, in s_py_zosc_tuple, you're not doing "assert(rc == 0);"
after "after zosc_pop_float" or "zosc_pop_double".

Here's something interesting in s_py_zosc:

            PyTypeObject* type = Py_TYPE(item);
            const char * typename = _PyType_Name(type);
            if (streq(typename, "c_int"))
            {
zsys_warning("Unsupported ctypes.c_int until we find a way to access the value :S");
            }
            else
                zsys_warning("unsupported python type");

            Py_DECREF(type);

According to the docs, Py_TYPE returns a borrowed reference, but you're DECREFing it. If you call s_py_zosc enough times, the reference count of the type will drop to 0. I think that might be the problem.
--
https://mail.python.org/mailman/listinfo/python-list

Reply via email to