Skip to content

Commit 0d878ca

Browse files
authored
Merge pull request YosysHQ#1832 from boqwxp/cleanup_passes_cmds_design
Clean up pseudo-private member usage in `passes/cmds/design.cc`.
2 parents 2c0739c + 7fc0938 commit 0d878ca

File tree

1 file changed

+33
-31
lines changed

1 file changed

+33
-31
lines changed

passes/cmds/design.cc

Lines changed: 33 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -195,13 +195,13 @@ struct DesignPass : public Pass {
195195
argidx = args.size();
196196
}
197197

198-
for (auto &it : copy_from_design->modules_) {
199-
if (sel.selected_whole_module(it.first)) {
200-
copy_src_modules.push_back(it.second);
198+
for (auto mod : copy_from_design->modules()) {
199+
if (sel.selected_whole_module(mod->name)) {
200+
copy_src_modules.push_back(mod);
201201
continue;
202202
}
203-
if (sel.selected_module(it.first))
204-
log_cmd_error("Module %s is only partly selected.\n", RTLIL::id2cstr(it.first));
203+
if (sel.selected_module(mod->name))
204+
log_cmd_error("Module %s is only partly selected.\n", log_id(mod->name));
205205
}
206206

207207
if (import_mode) {
@@ -231,8 +231,8 @@ struct DesignPass : public Pass {
231231
pool<Module*> queue;
232232
dict<IdString, IdString> done;
233233

234-
if (copy_to_design->modules_.count(prefix))
235-
delete copy_to_design->modules_.at(prefix);
234+
if (copy_to_design->module(prefix) != nullptr)
235+
copy_to_design->remove(copy_to_design->module(prefix));
236236

237237
if (GetSize(copy_src_modules) != 1)
238238
log_cmd_error("No top module found in source design.\n");
@@ -241,12 +241,13 @@ struct DesignPass : public Pass {
241241
{
242242
log("Importing %s as %s.\n", log_id(mod), log_id(prefix));
243243

244-
copy_to_design->modules_[prefix] = mod->clone();
245-
copy_to_design->modules_[prefix]->name = prefix;
246-
copy_to_design->modules_[prefix]->design = copy_to_design;
247-
copy_to_design->modules_[prefix]->attributes.erase("\\top");
244+
RTLIL::Module *t = mod->clone();
245+
t->name = prefix;
246+
t->design = copy_to_design;
247+
t->attributes.erase("\\top");
248+
copy_to_design->add(t);
248249

249-
queue.insert(copy_to_design->modules_[prefix]);
250+
queue.insert(t);
250251
done[mod->name] = prefix;
251252
}
252253

@@ -269,15 +270,16 @@ struct DesignPass : public Pass {
269270

270271
log("Importing %s as %s.\n", log_id(fmod), log_id(trg_name));
271272

272-
if (copy_to_design->modules_.count(trg_name))
273-
delete copy_to_design->modules_.at(trg_name);
273+
if (copy_to_design->module(trg_name) != nullptr)
274+
copy_to_design->remove(copy_to_design->module(trg_name));
274275

275-
copy_to_design->modules_[trg_name] = fmod->clone();
276-
copy_to_design->modules_[trg_name]->name = trg_name;
277-
copy_to_design->modules_[trg_name]->design = copy_to_design;
278-
copy_to_design->modules_[trg_name]->attributes.erase("\\top");
276+
RTLIL::Module *t = fmod->clone();
277+
t->name = trg_name;
278+
t->design = copy_to_design;
279+
t->attributes.erase("\\top");
280+
copy_to_design->add(t);
279281

280-
queue.insert(copy_to_design->modules_[trg_name]);
282+
queue.insert(t);
281283
done[cell->type] = trg_name;
282284
}
283285

@@ -295,21 +297,22 @@ struct DesignPass : public Pass {
295297
{
296298
std::string trg_name = as_name.empty() ? mod->name.str() : RTLIL::escape_id(as_name);
297299

298-
if (copy_to_design->modules_.count(trg_name))
299-
delete copy_to_design->modules_.at(trg_name);
300+
if (copy_to_design->module(trg_name) != nullptr)
301+
copy_to_design->remove(copy_to_design->module(trg_name));
300302

301-
copy_to_design->modules_[trg_name] = mod->clone();
302-
copy_to_design->modules_[trg_name]->name = trg_name;
303-
copy_to_design->modules_[trg_name]->design = copy_to_design;
303+
RTLIL::Module *t = mod->clone();
304+
t->name = trg_name;
305+
t->design = copy_to_design;
306+
copy_to_design->add(t);
304307
}
305308
}
306309

307310
if (!save_name.empty() || push_mode)
308311
{
309312
RTLIL::Design *design_copy = new RTLIL::Design;
310313

311-
for (auto &it : design->modules_)
312-
design_copy->add(it.second->clone());
314+
for (auto mod : design->modules())
315+
design_copy->add(mod->clone());
313316

314317
design_copy->selection_stack = design->selection_stack;
315318
design_copy->selection_vars = design->selection_vars;
@@ -326,9 +329,8 @@ struct DesignPass : public Pass {
326329

327330
if (reset_mode || !load_name.empty() || push_mode || pop_mode)
328331
{
329-
for (auto &it : design->modules_)
330-
delete it.second;
331-
design->modules_.clear();
332+
for (auto mod : design->modules())
333+
design->remove(mod);
332334

333335
design->selection_stack.clear();
334336
design->selection_vars.clear();
@@ -354,8 +356,8 @@ struct DesignPass : public Pass {
354356
{
355357
RTLIL::Design *saved_design = pop_mode ? pushed_designs.back() : saved_designs.at(load_name);
356358

357-
for (auto &it : saved_design->modules_)
358-
design->add(it.second->clone());
359+
for (auto mod : saved_design->modules())
360+
design->add(mod->clone());
359361

360362
design->selection_stack = saved_design->selection_stack;
361363
design->selection_vars = saved_design->selection_vars;

0 commit comments

Comments
 (0)