我有一个用XCode开发的iOS项目,它使用libpd加载纯数据补丁。我的项目使用[osc~]和[phasor~]混合调制参数(音高,音量等)。我的应用程序是64位,现在需要。我使用的是最新版本的Pure Data和libpd。
它在一个地方崩溃。我有一个[osc~],它的音调由一个包络调制。当我在设备上更改包络长度(=调制速率)的值时,它会在测试期间随机崩溃,但总是在同一行的libpd代码上。我认为它与参数的更改速度有关但不是,它也会在参数缓慢变化时发生。
这是在发生问题的(减少的)补丁下面。我最近赶上了Pure Data。欢迎任何建议或更正。
以下是XCode崩溃的屏幕截图,其中包含代码序列和崩溃的clock_unset行。
全图here。
我已完成一些打印,并且在此功能中崩溃:
void clock_unset(t_clock *x){
if (x->c_settime >= 0){
if (x == clock_setlist) clock_setlist = x->c_next;
else{
t_clock *x2 = clock_setlist;
while (x2->c_next != x) x2 = x2->c_next;
x2->c_next = x->c_next;
}
x->c_settime = -1;
}
}
在这一行:
while (x2->c_next != x) x2 = x2->c_next;
打印值为: x2-> c_next == NULL
任何人都有过类似的经历吗?
感谢。