From bc0971ff7073b2c58e7f0fff634764272c326bac Mon Sep 17 00:00:00 2001 From: Hanna K Date: Wed, 9 Aug 2017 19:31:24 +0200 Subject: [PATCH] Fix global variable restoration --- libqalculate/Calculator.cc | 8 ++++---- libqalculate/ExpressionItem.cc | 6 +++--- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/libqalculate/Calculator.cc b/libqalculate/Calculator.cc index 8faa7072..a4fa85b7 100644 --- a/libqalculate/Calculator.cc +++ b/libqalculate/Calculator.cc @@ -3423,17 +3423,17 @@ void Calculator::expressionItemDeleted(ExpressionItem *item) { break; } } - for(size_t i = 1; i <= item->countNames(); i++) { + for(size_t i2 = 1; i2 <= item->countNames(); i2++) { if(item->type() == TYPE_VARIABLE || item->type() == TYPE_UNIT) { for(size_t i = 0; i < variables.size(); i++) { - if(!variables[i]->isLocal() && !variables[i]->isActive() && variables[i]->hasName(item->getName(i).name, item->getName(i).case_sensitive) && !getActiveExpressionItem(variables[i])) variables[i]->setActive(true); + if(!variables[i]->isLocal() && !variables[i]->isActive() && variables[i]->hasName(item->getName(i2).name, item->getName(i2).case_sensitive) && !getActiveExpressionItem(variables[i])) {variables[i]->setActive(true);} } for(size_t i = 0; i < units.size(); i++) { - if(!units[i]->isLocal() && !units[i]->isActive() && units[i]->hasName(item->getName(i).name, item->getName(i).case_sensitive) && !getActiveExpressionItem(units[i])) units[i]->setActive(true); + if(!units[i]->isLocal() && !units[i]->isActive() && units[i]->hasName(item->getName(i2).name, item->getName(i2).case_sensitive) && !getActiveExpressionItem(units[i])) units[i]->setActive(true); } } else { for(size_t i = 0; i < functions.size(); i++) { - if(!functions[i]->isLocal() && !functions[i]->isActive() && functions[i]->hasName(item->getName(i).name, item->getName(i).case_sensitive) && !getActiveExpressionItem(functions[i])) functions[i]->setActive(true); + if(!functions[i]->isLocal() && !functions[i]->isActive() && functions[i]->hasName(item->getName(i2).name, item->getName(i2).case_sensitive) && !getActiveExpressionItem(functions[i])) functions[i]->setActive(true); } } } diff --git a/libqalculate/ExpressionItem.cc b/libqalculate/ExpressionItem.cc index 0ff520fe..ed56f258 100644 --- a/libqalculate/ExpressionItem.cc +++ b/libqalculate/ExpressionItem.cc @@ -359,16 +359,16 @@ bool ExpressionItem::setLocal(bool is_local, int will_be_active) { if(is_local != b_local) { if(!b_local) { bool was_active = b_active; - b_active = false; + b_active = false; ExpressionItem *item = copy(); - b_local = is_local; + b_local = is_local; b_active = was_active; if(will_be_active) { setActive(true); } else if(will_be_active == 0) { setActive(false); } - CALCULATOR->addExpressionItem(item); + CALCULATOR->addExpressionItem(item); if(was_active != item->isActive()) { item->setChanged(true); }