Skip to content

Commit 9d4301f

Browse files
Use Vec instead of std::vector
1 parent 7efa3b7 commit 9d4301f

File tree

3 files changed

+19
-16
lines changed

3 files changed

+19
-16
lines changed

src/libasr/asr_scopes.cpp

Lines changed: 14 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -135,9 +135,11 @@ std::string SymbolTable::get_unique_name(const std::string &name) {
135135
return unique_name;
136136
}
137137

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);
141143
for (auto &a : scope) {
142144
switch (a.second->type) {
143145
case (ASR::symbolType::Module): {
@@ -175,50 +177,50 @@ void SymbolTable::move_symbols_from_global_scope(Allocator &/*al*/,
175177
s = fn->m_symtab->parent->get_symbol(fn->m_dependencies[i]);
176178
}
177179
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<
179181
ASR::ExternalSymbol_t>(s)->m_module_name);
180182
}
181183
}
182184
fn->m_symtab->parent = module_scope;
183185
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));
185187
break;
186188
} case (ASR::symbolType::GenericProcedure) : {
187189
ASR::GenericProcedure_t *es = ASR::down_cast<ASR::GenericProcedure_t>(a.second);
188190
es->m_parent_symtab = module_scope;
189191
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));
191193
break;
192194
} case (ASR::symbolType::ExternalSymbol) : {
193195
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);
195197
es->m_parent_symtab = module_scope;
196198
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));
198200
break;
199201
} case (ASR::symbolType::StructType) : {
200202
ASR::StructType_t *st = ASR::down_cast<ASR::StructType_t>(a.second);
201203
st->m_symtab->parent = module_scope;
202204
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));
204206
break;
205207
} case (ASR::symbolType::EnumType) : {
206208
ASR::EnumType_t *et = ASR::down_cast<ASR::EnumType_t>(a.second);
207209
et->m_symtab->parent = module_scope;
208210
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));
210212
break;
211213
} case (ASR::symbolType::UnionType) : {
212214
ASR::UnionType_t *ut = ASR::down_cast<ASR::UnionType_t>(a.second);
213215
ut->m_symtab->parent = module_scope;
214216
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));
216218
break;
217219
} case (ASR::symbolType::Variable) : {
218220
ASR::Variable_t *v = ASR::down_cast<ASR::Variable_t>(a.second);
219221
v->m_parent_symtab = module_scope;
220222
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));
222224
break;
223225
} default : {
224226
throw LCompilersException("Moving the symbol:`" + a.first +

src/libasr/asr_scopes.h

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
#include <map>
55

66
#include <libasr/alloc.h>
7+
#include <libasr/containers.h>
78

89
namespace LCompilers {
910

@@ -82,8 +83,8 @@ struct SymbolTable {
8283
std::string get_unique_name(const std::string &name);
8384

8485
void move_symbols_from_global_scope(Allocator &al,
85-
SymbolTable *module_scope, std::vector<std::string> &syms,
86-
std::vector<char *> &mod_dependencies);
86+
SymbolTable *module_scope, Vec<char *> &syms,
87+
Vec<char *> &mod_dependencies);
8788
};
8889

8990
} // namespace LCompilers

src/libasr/pass/global_symbols.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,8 +20,8 @@ void pass_wrap_global_syms_into_module(Allocator &al,
2020
Location loc = unit.base.base.loc;
2121
char *module_name = s2c(al, "_global_symbols");
2222
SymbolTable *module_scope = al.make_new<SymbolTable>(unit.m_global_scope);
23-
std::vector<std::string> moved_symbols;
24-
std::vector<char *> mod_dependencies;
23+
Vec<char *> moved_symbols;
24+
Vec<char *> mod_dependencies;
2525

2626
// Move all the symbols from global into the module scope
2727
unit.m_global_scope->move_symbols_from_global_scope(al, module_scope,

0 commit comments

Comments
 (0)