You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
The above example crashes the server (when sending the last bundle after "tada"). It makes a difference whether the synth is "paused twice" or not. I.e. if the line "this is needed" is removed, scsynth no longer crashes. Seems quite a fundamental/severe bug to me. We tried to different versions and computer so far.
The text was updated successfully, but these errors were encountered:
diff --git a/server/scsynth/SC_Node.cpp b/server/scsynth/SC_Node.cpp
index 92a6236a5..520f52af4 100644
--- a/server/scsynth/SC_Node.cpp+++ b/server/scsynth/SC_Node.cpp@@ -260,7 +260,9 @@ void Graph_NullFirstCalc(Graph* inGraph);
void Node_SetRun(Node* inNode, int inRun) {
if (inRun) {
- if (inNode->mCalcFunc == &Node_NullCalc) {+ if (inNode->mCalcFunc == &Node_NullCalc || inNode->mCalcFunc == (NodeCalcFunc)&Graph_NullFirstCalc) {
if (inNode->mIsGroup) {
inNode->mCalcFunc = (NodeCalcFunc)&Group_Calc;
+ } else if (inNode->mCalcFunc == (NodeCalcFunc)&Graph_NullFirstCalc) {+ inNode->mCalcFunc = (NodeCalcFunc)&Graph_FirstCalc;
} else {
inNode->mCalcFunc = (NodeCalcFunc)&Graph_Calc;
@@ -270,5 +272,5 @@ void Node_SetRun(Node* inNode, int inRun) {
} else {
if (inNode->mCalcFunc != &Node_NullCalc) {
- if (!inNode->mIsGroup && inNode->mCalcFunc == (NodeCalcFunc)&Graph_FirstCalc) {+ if (!inNode->mIsGroup && (inNode->mCalcFunc == (NodeCalcFunc)&Graph_FirstCalc || inNode->mCalcFunc == (NodeCalcFunc)&Graph_NullFirstCalc)) {
inNode->mCalcFunc = (NodeCalcFunc)&Graph_NullFirstCalc;
} else {
basically we need to keep better track of the 'first-calc'-ness of the node. there could be more bugs in this code, but it passes your test case. if i have more time to test this week i will submit a PR. thanks for the report!
Environment
Steps to reproduce
Expected vs. actual behavior
The above example crashes the server (when sending the last bundle after "tada"). It makes a difference whether the synth is "paused twice" or not. I.e. if the line "this is needed" is removed, scsynth no longer crashes. Seems quite a fundamental/severe bug to me. We tried to different versions and computer so far.
The text was updated successfully, but these errors were encountered: