version 2.16.0, PIPluginLoader changes

This commit is contained in:
2021-02-15 16:02:24 +03:00
parent d94a98e1f9
commit f367ef00f7
3 changed files with 21 additions and 12 deletions

View File

@@ -234,6 +234,7 @@ PIPluginInfoStorage * PIPluginInfoStorage::instance() {
PIPluginLoader::PIPluginLoader(const PIString & name) {
func_loader_version = nullptr;
func_set_user_version = nullptr;
func_static_merge = nullptr;
error = Unknown;
loaded = false;
@@ -268,14 +269,17 @@ bool PIPluginLoader::load(const PIString & name) {
if (messages) piCout << error_str;
return false;
}
if (__PIP_PLUGIN_LOADER_VERSION__ != func_loader_version()) {
int loader_version = func_loader_version();
if (__PIP_PLUGIN_LOADER_VERSION__ != loader_version) {
unload();
error = InvalidLoaderVersion;
error_str = "Load plugin \"" + lib.path() + "\" error: invalid loader version: application = " + PIString::fromNumber(func_loader_version())
+ ", plugin = " + PIString::fromNumber(__PIP_PLUGIN_LOADER_VERSION__);
error_str = "Load plugin \"" + lib.path() + "\" error: invalid loader version: application = " + PIString::fromNumber(__PIP_PLUGIN_LOADER_VERSION__)
+ ", plugin = " + PIString::fromNumber(loader_version);
if (messages) piCout << error_str;
return false;
}
func_set_user_version = (FunctionSetUserVersion)lib.resolve(STR(__PIP_PLUGIN_SET_USER_VERSION_FUNC__));
if (func_set_user_version) func_set_user_version();
if (ai->userVersion().size_s() > 1) {
PIString pversion = pi->userVersion(), lversion = ai->userVersion();
if (pversion != lversion) {