diff options
author | Marius Kintel <marius@kintel.net> | 2013-03-25 00:52:24 (GMT) |
---|---|---|
committer | Marius Kintel <marius@kintel.net> | 2013-03-25 00:52:24 (GMT) |
commit | fea2f82612fbeb6b1bfc4e3003a18887f245dd2d (patch) | |
tree | ecf9ffc4e1ff232c42d10ec41dfb37d82c80c9db /src/parser.y | |
parent | ee579894fd01d1c42389250b180f0a08c97519c6 (diff) | |
parent | 6b8a5e266ca1725e35e76aef0caa639fe77fdc48 (diff) |
Merge branch 'master' of /Users/kintel/code/OpenSCAD/clang/../openscad
Diffstat (limited to 'src/parser.y')
-rw-r--r-- | src/parser.y | 17 |
1 files changed, 4 insertions, 13 deletions
diff --git a/src/parser.y b/src/parser.y index 3e485ff..536f4ef 100644 --- a/src/parser.y +++ b/src/parser.y @@ -151,19 +151,10 @@ statement: } } | TOK_ID '=' expr ';' { - bool add_new_assignment = true; - for (size_t i = 0; i < currmodule->assignments_var.size(); i++) { - if (currmodule->assignments_var[i] != $1) - continue; - delete currmodule->assignments_expr[i]; - currmodule->assignments_expr[i] = $3; - add_new_assignment = false; - } - if (add_new_assignment) { - currmodule->assignments_var.push_back($1); - currmodule->assignments_expr.push_back($3); - free($1); - } + std::list<std::string>::iterator found = std::find(currmodule->assignments_var.begin(), currmodule->assignments_var.end(),$1); + if (found != currmodule->assignments_var.end()) currmodule->assignments_var.erase(found); + currmodule->assignments_var.push_back($1); + currmodule->assignments[$1] = $3; } | TOK_MODULE TOK_ID '(' arguments_decl optional_commas ')' { Module *p = currmodule; |