Introspection: Refactor ExecuteSelection to use CommandArgs only Signed-off-by: Tomasz Michalak <tmichalak@antmicro.com>
diff --git a/design_introspection-plugin/get_cmd.cc b/design_introspection-plugin/get_cmd.cc index 3341b3c..74f8989 100644 --- a/design_introspection-plugin/get_cmd.cc +++ b/design_introspection-plugin/get_cmd.cc
@@ -30,11 +30,11 @@ log("\n"); } -void GetCmd::ExecuteSelection(RTLIL::Design* design, std::vector<std::string>& raw_args, const CommandArgs& args) { +void GetCmd::ExecuteSelection(RTLIL::Design* design, const CommandArgs& args) { std::vector<std::string> selection_args; // Add name of top module to selection string - std::transform(raw_args.begin() + args.current_args_idx, raw_args.end(), - std::back_inserter(selection_args), [&](std::string& obj) { + std::transform(args.selection_objects.begin(), args.selection_objects.end(), + std::back_inserter(selection_args), [&](const std::string& obj) { return RTLIL::unescape_id(design->top_module()->name) + "/" + SelectionType() + ":" + obj; }); @@ -59,11 +59,10 @@ } GetCmd::CommandArgs GetCmd::ParseCommand(const std::vector<std::string>& args) { - CommandArgs parsed_args{.current_args_idx = 0, - .filters = Filters(), + CommandArgs parsed_args{.filters = Filters(), .is_quiet = false, .selection_objects = SelectionObjects()}; - size_t argidx; + size_t argidx(0); for (argidx = 1; argidx < args.size(); argidx++) { std::string arg = args[argidx]; if (arg == "-quiet") { @@ -117,7 +116,6 @@ break; } std::copy(args.begin() + argidx, args.end(), std::back_inserter(parsed_args.selection_objects)); - parsed_args.current_args_idx = argidx; return parsed_args; } @@ -127,6 +125,6 @@ } CommandArgs parsed_args(ParseCommand(args)); - ExecuteSelection(design, args, parsed_args); + ExecuteSelection(design, parsed_args); PackSelectionToTcl(design, parsed_args); }
diff --git a/design_introspection-plugin/get_cmd.h b/design_introspection-plugin/get_cmd.h index 70aaa5b..5eb295b 100644 --- a/design_introspection-plugin/get_cmd.h +++ b/design_introspection-plugin/get_cmd.h
@@ -10,7 +10,6 @@ using Filters = std::vector<Filter>; using SelectionObjects = std::vector<std::string>; struct CommandArgs { - size_t current_args_idx; Filters filters; bool is_quiet; SelectionObjects selection_objects; @@ -28,7 +27,7 @@ CommandArgs ParseCommand(const std::vector<std::string>& args); virtual void ExtractSelection(Tcl_Obj*, RTLIL::Module*, const CommandArgs& args) {} virtual void ExecuteSelection(RTLIL::Design* design, - std::vector<std::string>& raw_args, const CommandArgs& args); + const CommandArgs& args); virtual void PackSelectionToTcl(RTLIL::Design* design, const CommandArgs& args); };