mirror of
https://github.com/FirebirdSQL/firebird.git
synced 2025-01-23 15:23:02 +01:00
Fixed 2 segfaults when using UDRs
This commit is contained in:
parent
22948f2a94
commit
5ac759124e
@ -185,8 +185,6 @@ public:
|
|||||||
//--------------------------------------
|
//--------------------------------------
|
||||||
|
|
||||||
|
|
||||||
static AutoPtr<ModuleLoader::Module> libraryModule;
|
|
||||||
|
|
||||||
static GlobalPtr<Mutex> modulesMutex;
|
static GlobalPtr<Mutex> modulesMutex;
|
||||||
static GlobalPtr<ModulesMap> modules;
|
static GlobalPtr<ModulesMap> modules;
|
||||||
|
|
||||||
@ -733,11 +731,6 @@ extern "C" void FB_EXPORTED FB_PLUGIN_ENTRY_POINT(IMaster* master)
|
|||||||
PluginManagerInterfacePtr pi;
|
PluginManagerInterfacePtr pi;
|
||||||
pi->registerPluginFactory(IPluginManager::ExternalEngine, "UDR", &factory);
|
pi->registerPluginFactory(IPluginManager::ExternalEngine, "UDR", &factory);
|
||||||
getUnloadDetector()->registerMe();
|
getUnloadDetector()->registerMe();
|
||||||
|
|
||||||
PathName libraryName("fbclient");
|
|
||||||
ModuleLoader::doctorModuleExtension(libraryName);
|
|
||||||
|
|
||||||
libraryModule.reset(ModuleLoader::loadModule(libraryName));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -3695,13 +3695,17 @@ namespace Why {
|
|||||||
|
|
||||||
IAttachment* MasterImplementation::registerAttachment(IProvider* provider, IAttachment* attachment)
|
IAttachment* MasterImplementation::registerAttachment(IProvider* provider, IAttachment* attachment)
|
||||||
{
|
{
|
||||||
return new YAttachment(provider, attachment, "");
|
IAttachment* rc = new YAttachment(provider, attachment, "");
|
||||||
|
attachment->addRef();
|
||||||
|
return rc;
|
||||||
}
|
}
|
||||||
|
|
||||||
ITransaction* MasterImplementation::registerTransaction(IAttachment* attachment,
|
ITransaction* MasterImplementation::registerTransaction(IAttachment* attachment,
|
||||||
ITransaction* transaction)
|
ITransaction* transaction)
|
||||||
{
|
{
|
||||||
return new YTransaction(static_cast<YAttachment*>(attachment), transaction);
|
ITransaction* rc = new YTransaction(static_cast<YAttachment*>(attachment), transaction);
|
||||||
|
transaction->addRef();
|
||||||
|
return rc;
|
||||||
}
|
}
|
||||||
|
|
||||||
template <typename Impl, typename Intf>
|
template <typename Impl, typename Intf>
|
||||||
|
Loading…
Reference in New Issue
Block a user