Update plugin (un)loading logic to keep plugins loaded if possible

This commit is contained in:
Maschell
2024-11-27 20:44:20 +01:00
parent bacb4d3aab
commit d2c1530084
14 changed files with 193 additions and 115 deletions

View File

@@ -1,7 +1,9 @@
#pragma once
#include "plugin/PluginContainer.h"
#include <coreinit/dynload.h>
#include <functional>
#include <map>
#include <memory>
#include <set>
@@ -10,10 +12,10 @@
class PluginManagement {
public:
static std::vector<PluginContainer> loadPlugins(
const std::set<std::shared_ptr<PluginData>> &pluginDataList,
const std::set<std::shared_ptr<PluginData>, PluginDataSharedPtrComparator> &pluginDataList,
std::vector<relocation_trampoline_entry_t> &trampolineData);
static void callInitHooks(const std::vector<PluginContainer> &plugins);
static void callInitHooks(const std::vector<PluginContainer> &plugins, const std::function<bool(const PluginContainer &)> &pred);
static bool doRelocations(const std::vector<PluginContainer> &plugins,
std::vector<relocation_trampoline_entry_t> &trampData,