mirror of
https://github.com/FirebirdSQL/firebird.git
synced 2025-01-23 02:03:04 +01:00
Make sure Engine instance is not destroyed before SharedXXX objects, that uses pointer on Engine in own dtor's.
Also, plugins (i.e. Engine) must be released via Plugin Manager, not directly.
This commit is contained in:
parent
aa2750ac6e
commit
9e996070fa
@ -32,6 +32,7 @@
|
||||
#include "../common/os/mod_loader.h"
|
||||
#include "../common/os/path_utils.h"
|
||||
#include "../common/classes/ImplementHelper.h"
|
||||
#include "../common/classes/GetPlugins.h"
|
||||
#include "../common/StatusHolder.h"
|
||||
|
||||
|
||||
@ -274,6 +275,7 @@ public:
|
||||
info(*getDefaultMemoryPool()),
|
||||
children(*getDefaultMemoryPool())
|
||||
{
|
||||
engine->addRef();
|
||||
module = engine->loadModule(status, metadata, &moduleName, &entryPoint);
|
||||
|
||||
IUdrFunctionFactory* factory = engine->findNode<IUdrFunctionFactory>(
|
||||
@ -310,7 +312,7 @@ public:
|
||||
}
|
||||
|
||||
public:
|
||||
Engine* engine;
|
||||
AutoPlugin<Engine> engine;
|
||||
IRoutineMetadata* metadata;
|
||||
PathName moduleName;
|
||||
string entryPoint;
|
||||
@ -336,6 +338,7 @@ public:
|
||||
info(*getDefaultMemoryPool()),
|
||||
children(*getDefaultMemoryPool())
|
||||
{
|
||||
engine->addRef();
|
||||
module = engine->loadModule(status, metadata, &moduleName, &entryPoint);
|
||||
|
||||
IUdrProcedureFactory* factory = engine->findNode<IUdrProcedureFactory>(
|
||||
@ -372,7 +375,7 @@ public:
|
||||
}
|
||||
|
||||
public:
|
||||
Engine* engine;
|
||||
AutoPlugin<Engine> engine;
|
||||
IRoutineMetadata* metadata;
|
||||
PathName moduleName;
|
||||
string entryPoint;
|
||||
@ -397,6 +400,7 @@ public:
|
||||
info(*getDefaultMemoryPool()),
|
||||
children(*getDefaultMemoryPool())
|
||||
{
|
||||
engine->addRef();
|
||||
module = engine->loadModule(status, metadata, &moduleName, &entryPoint);
|
||||
|
||||
IUdrTriggerFactory* factory = engine->findNode<IUdrTriggerFactory>(
|
||||
@ -434,7 +438,7 @@ public:
|
||||
}
|
||||
|
||||
public:
|
||||
Engine* engine;
|
||||
AutoPlugin<Engine> engine;
|
||||
IRoutineMetadata* metadata;
|
||||
PathName moduleName;
|
||||
string entryPoint;
|
||||
|
Loading…
Reference in New Issue
Block a user