Skip to content

Commit a7490e1

Browse files
committed
refactor: refactor plugin manager
1 parent c8be7b4 commit a7490e1

File tree

4 files changed

+9
-13
lines changed

4 files changed

+9
-13
lines changed

src/lse/Plugin.cpp

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,9 @@
88

99
namespace lse {
1010

11-
Plugin::Plugin(const ll::mod::Manifest& manifest) : ll::mod::Mod(manifest) {}
11+
Plugin::Plugin(const ll::mod::Manifest& manifest) : ll::mod::Mod(std::move(manifest)) {}
12+
13+
Plugin::~Plugin() { release(); }
1214

1315
std::shared_ptr<ll::mod::Mod> Plugin::current() {
1416
return lse::getPluginManager().getMod(getEngineOwnData()->pluginName);

src/lse/Plugin.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ class Plugin : public ll::mod::Mod {
1212

1313
public:
1414
Plugin(const ll::mod::Manifest& manifest);
15+
~Plugin();
1516

1617
static std::shared_ptr<ll::mod::Mod> current();
1718
};

src/lse/PluginManager.cpp

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -58,6 +58,7 @@ auto LLSERemoveAllExportedFuncs(script::ScriptEngine* engine) -> bool;
5858
namespace lse {
5959

6060
PluginManager::PluginManager() : ll::mod::ModManager(PluginManagerName) {}
61+
PluginManager::~PluginManager() = default;
6162

6263
ll::Expected<> PluginManager::load(ll::mod::Manifest manifest) {
6364
#ifdef LEGACY_SCRIPT_ENGINE_BACKEND_PYTHON
@@ -207,9 +208,8 @@ ll::Expected<> PluginManager::load(ll::mod::Manifest manifest) {
207208
ExitEngineScope exit;
208209
plugin->onLoad([](ll::mod::Mod&) { return true; });
209210
plugin->onUnload([](ll::mod::Mod&) { return true; });
210-
plugin->onEnable([](ll::mod::Mod&) { return true; });
211-
plugin->onDisable([](ll::mod::Mod&) { return true; });
212-
addMod(manifest.name, plugin);
211+
212+
return plugin->onLoad().transform([&, this] { addMod(manifest.name, plugin); });
213213
} catch (const Exception& e) {
214214
EngineScope engineScope(scriptEngine);
215215
auto error =
@@ -227,7 +227,6 @@ ll::Expected<> PluginManager::load(ll::mod::Manifest manifest) {
227227

228228
return error;
229229
}
230-
return {};
231230
}
232231

233232
ll::Expected<> PluginManager::unload(std::string_view name) {

src/lse/PluginManager.h

Lines changed: 2 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -8,16 +8,10 @@
88

99
namespace lse {
1010

11-
class PluginManager : public ll::mod::ModManager {
11+
class PluginManager final : public ll::mod::ModManager {
1212
public:
1313
PluginManager();
14-
15-
PluginManager(const PluginManager&) = delete;
16-
PluginManager(PluginManager&&) = delete;
17-
auto operator=(const PluginManager&) -> PluginManager& = delete;
18-
auto operator=(PluginManager&&) -> PluginManager& = delete;
19-
20-
~PluginManager() override = default;
14+
~PluginManager() override;
2115

2216
private:
2317
ll::Expected<> load(ll::mod::Manifest manifest) override;

0 commit comments

Comments
 (0)