summaryrefslogtreecommitdiff
path: root/src/parser.y
diff options
context:
space:
mode:
authorDon Bright <hugh.m.bright@gmail.com>2012-01-02 03:30:39 (GMT)
committerDon Bright <hugh.m.bright@gmail.com>2012-01-02 03:30:39 (GMT)
commitc765f5162f159a233c776e7288f68d440f81b326 (patch)
tree05617cd569c01427fa8ede0ee0aaad7947a36bf5 /src/parser.y
parent7a044adfb8f7d9a1e64b72fb9a4a873b0449e4f6 (diff)
fix crash bug rpt by nop head - 'use <x.scad>' when x.scad doesnt exist
Diffstat (limited to 'src/parser.y')
-rw-r--r--src/parser.y9
1 files changed, 7 insertions, 2 deletions
diff --git a/src/parser.y b/src/parser.y
index b0df50d..958ef89 100644
--- a/src/parser.y
+++ b/src/parser.y
@@ -588,13 +588,18 @@ AbstractModule *parse(const char *text, const char *path, int debug)
if (!module)
return NULL;
- BOOST_FOREACH(Module::ModuleContainer::value_type &m, module->usedlibs) {
+ std::vector<std::string> to_erase;
+
+ BOOST_FOREACH(Module::ModuleContainer::value_type &m, module->usedlibs) {
module->usedlibs[m.first] = Module::compile_library(m.first);
if (!module->usedlibs[m.first]) {
PRINTF("WARNING: Failed to compile library `%s'.", m.first.c_str());
- module->usedlibs.erase(m.first);
+ to_erase.push_back( m.first );
}
}
+ BOOST_FOREACH( std::string s, to_erase ) {
+ module->usedlibs.erase( s );
+ }
parser_error_pos = -1;
return module;
contact: Jan Huwald // Impressum