diff --git a/src/libs/linprog/LinearSpec.cpp b/src/libs/linprog/LinearSpec.cpp index 8c1ca32ede..fa3e8d5af5 100644 --- a/src/libs/linprog/LinearSpec.cpp +++ b/src/libs/linprog/LinearSpec.cpp @@ -93,6 +93,9 @@ LinearSpec::AddVariable(Variable* variable) if (!fVariables.AddItem(variable)) return false; + if (variable->fLS == NULL) + variable->fLS = this; + if (!fSolver->VariableAdded(variable)) { fVariables.RemoveItem(variable); return false; diff --git a/src/libs/linprog/Variable.cpp b/src/libs/linprog/Variable.cpp index 82594494a6..47cb5d099b 100644 --- a/src/libs/linprog/Variable.cpp +++ b/src/libs/linprog/Variable.cpp @@ -325,6 +325,7 @@ Variable::RemoveReference() */ Variable::~Variable() { - fLS->RemoveVariable(this, false); + if (fLS) + fLS->RemoveVariable(this, false); }