summaryrefslogtreecommitdiff
path: root/src/parser.y
diff options
context:
space:
mode:
authordon bright <hugh.m.bright@gmail.com>2013-03-11 23:29:45 (GMT)
committerdon bright <hugh.m.bright@gmail.com>2013-03-11 23:29:45 (GMT)
commit40cd64042aec8a452283d60cbb676b9242d9a346 (patch)
treefb23c498afc75c03df8f97f7c2eda466d1168c30 /src/parser.y
parent79ce1e47d0ff250aed46ddc3058ea4f694900bb0 (diff)
parentd9c4b779421b226d0ad1eed492611eb5ddb843ed (diff)
Merge branch 'master' of github.com:openscad/openscad into resize5
Diffstat (limited to 'src/parser.y')
-rw-r--r--src/parser.y17
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;
contact: Jan Huwald // Impressum