File tree Expand file tree Collapse file tree 4 files changed +9
-13
lines changed
Expand file tree Collapse file tree 4 files changed +9
-13
lines changed Original file line number Diff line number Diff line change 88
99namespace 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
1315std::shared_ptr<ll::mod::Mod> Plugin::current () {
1416 return lse::getPluginManager ().getMod (getEngineOwnData ()->pluginName );
Original file line number Diff line number Diff line change @@ -12,6 +12,7 @@ class Plugin : public ll::mod::Mod {
1212
1313public:
1414 Plugin (const ll::mod::Manifest& manifest);
15+ ~Plugin ();
1516
1617 static std::shared_ptr<ll::mod::Mod> current ();
1718};
Original file line number Diff line number Diff line change @@ -58,6 +58,7 @@ auto LLSERemoveAllExportedFuncs(script::ScriptEngine* engine) -> bool;
5858namespace lse {
5959
6060PluginManager::PluginManager () : ll::mod::ModManager(PluginManagerName) {}
61+ PluginManager::~PluginManager () = default ;
6162
6263ll::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
233232ll::Expected<> PluginManager::unload (std::string_view name) {
Original file line number Diff line number Diff line change 88
99namespace lse {
1010
11- class PluginManager : public ll ::mod::ModManager {
11+ class PluginManager final : public ll::mod::ModManager {
1212public:
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
2216private:
2317 ll::Expected<> load (ll::mod::Manifest manifest) override ;
You can’t perform that action at this time.
0 commit comments