@@ -135,9 +135,11 @@ std::string SymbolTable::get_unique_name(const std::string &name) {
135
135
return unique_name;
136
136
}
137
137
138
- void SymbolTable::move_symbols_from_global_scope (Allocator &/* al*/ ,
139
- SymbolTable *module_scope, std::vector<std::string> &syms,
140
- std::vector<char *> &mod_dependencies) {
138
+ void SymbolTable::move_symbols_from_global_scope (Allocator &al,
139
+ SymbolTable *module_scope, Vec<char *> &syms,
140
+ Vec<char *> &mod_dependencies) {
141
+ syms.reserve (al, 4 );
142
+ mod_dependencies.reserve (al, 4 );
141
143
for (auto &a : scope) {
142
144
switch (a.second ->type ) {
143
145
case (ASR::symbolType::Module): {
@@ -175,50 +177,50 @@ void SymbolTable::move_symbols_from_global_scope(Allocator &/*al*/,
175
177
s = fn->m_symtab ->parent ->get_symbol (fn->m_dependencies [i]);
176
178
}
177
179
if (s != nullptr && ASR::is_a<ASR::ExternalSymbol_t>(*s)) {
178
- mod_dependencies.push_back (ASR::down_cast<
180
+ mod_dependencies.push_back (al, ASR::down_cast<
179
181
ASR::ExternalSymbol_t>(s)->m_module_name );
180
182
}
181
183
}
182
184
fn->m_symtab ->parent = module_scope;
183
185
module_scope->add_symbol (a.first , (ASR::symbol_t *) fn);
184
- syms.push_back (a.first );
186
+ syms.push_back (al, s2c (al, a.first ) );
185
187
break ;
186
188
} case (ASR::symbolType::GenericProcedure) : {
187
189
ASR::GenericProcedure_t *es = ASR::down_cast<ASR::GenericProcedure_t>(a.second );
188
190
es->m_parent_symtab = module_scope;
189
191
module_scope->add_symbol (a.first , (ASR::symbol_t *) es);
190
- syms.push_back (a.first );
192
+ syms.push_back (al, s2c (al, a.first ) );
191
193
break ;
192
194
} case (ASR::symbolType::ExternalSymbol) : {
193
195
ASR::ExternalSymbol_t *es = ASR::down_cast<ASR::ExternalSymbol_t>(a.second );
194
- mod_dependencies.push_back (es->m_module_name );
196
+ mod_dependencies.push_back (al, es->m_module_name );
195
197
es->m_parent_symtab = module_scope;
196
198
module_scope->add_symbol (a.first , (ASR::symbol_t *) es);
197
- syms.push_back (a.first );
199
+ syms.push_back (al, s2c (al, a.first ) );
198
200
break ;
199
201
} case (ASR::symbolType::StructType) : {
200
202
ASR::StructType_t *st = ASR::down_cast<ASR::StructType_t>(a.second );
201
203
st->m_symtab ->parent = module_scope;
202
204
module_scope->add_symbol (a.first , (ASR::symbol_t *) st);
203
- syms.push_back (a.first );
205
+ syms.push_back (al, s2c (al, a.first ) );
204
206
break ;
205
207
} case (ASR::symbolType::EnumType) : {
206
208
ASR::EnumType_t *et = ASR::down_cast<ASR::EnumType_t>(a.second );
207
209
et->m_symtab ->parent = module_scope;
208
210
module_scope->add_symbol (a.first , (ASR::symbol_t *) et);
209
- syms.push_back (a.first );
211
+ syms.push_back (al, s2c (al, a.first ) );
210
212
break ;
211
213
} case (ASR::symbolType::UnionType) : {
212
214
ASR::UnionType_t *ut = ASR::down_cast<ASR::UnionType_t>(a.second );
213
215
ut->m_symtab ->parent = module_scope;
214
216
module_scope->add_symbol (a.first , (ASR::symbol_t *) ut);
215
- syms.push_back (a.first );
217
+ syms.push_back (al, s2c (al, a.first ) );
216
218
break ;
217
219
} case (ASR::symbolType::Variable) : {
218
220
ASR::Variable_t *v = ASR::down_cast<ASR::Variable_t>(a.second );
219
221
v->m_parent_symtab = module_scope;
220
222
module_scope->add_symbol (a.first , (ASR::symbol_t *) v);
221
- syms.push_back (a.first );
223
+ syms.push_back (al, s2c (al, a.first ) );
222
224
break ;
223
225
} default : {
224
226
throw LCompilersException (" Moving the symbol:`" + a.first +
0 commit comments