Skip to content

Commit

Permalink
Add API to overwrite existing pass from plugin
Browse files Browse the repository at this point in the history
Signed-off-by: Claire Xenia Wolf <[email protected]>
  • Loading branch information
clairexen committed Jan 30, 2024
1 parent 3537976 commit 4fa314c
Show file tree
Hide file tree
Showing 3 changed files with 4 additions and 6 deletions.
8 changes: 3 additions & 5 deletions kernel/register.cc
Original file line number Diff line number Diff line change
Expand Up @@ -108,9 +108,8 @@ Pass::Pass(std::string name, std::string short_help) : pass_name(name), short_he

void Pass::run_register()
{
if (pass_register.count(pass_name))
if (pass_register.count(pass_name) && !replace_existing_pass())
log_error("Unable to register pass '%s', pass already exists!\n", pass_name.c_str());

pass_register[pass_name] = this;
}

Expand Down Expand Up @@ -447,13 +446,12 @@ Frontend::Frontend(std::string name, std::string short_help) :

void Frontend::run_register()
{
if (pass_register.count(pass_name))
if (pass_register.count(pass_name) && !replace_existing_pass())
log_error("Unable to register pass '%s', pass already exists!\n", pass_name.c_str());
pass_register[pass_name] = this;

if (frontend_register.count(frontend_name))
if (frontend_register.count(frontend_name) && !replace_existing_pass())
log_error("Unable to register frontend '%s', frontend already exists!\n", frontend_name.c_str());

frontend_register[frontend_name] = this;
}

Expand Down
1 change: 1 addition & 0 deletions kernel/register.h
Original file line number Diff line number Diff line change
Expand Up @@ -70,6 +70,7 @@ struct Pass

virtual void on_register();
virtual void on_shutdown();
virtual bool replace_existing_pass() const { return false; }
};

struct ScriptPass : Pass
Expand Down
1 change: 0 additions & 1 deletion passes/cmds/plugin.cc
Original file line number Diff line number Diff line change
Expand Up @@ -103,7 +103,6 @@ void load_plugin(std::string filename, std::vector<std::string> aliases)

loaded_plugins[orig_filename] = hdl;
Pass::init_register();

}
}

Expand Down

0 comments on commit 4fa314c

Please sign in to comment.