mirror of
https://github.com/FirebirdSQL/firebird.git
synced 2025-01-23 07:23:04 +01:00
Avoid thrown exceptions in normal operation when loading non-existent ICU versions. This was a pain in the debugger.
This commit is contained in:
parent
bf36c6a366
commit
32fe5b0988
@ -175,9 +175,9 @@ public:
|
|||||||
|
|
||||||
|
|
||||||
// encapsulate ICU conversion library
|
// encapsulate ICU conversion library
|
||||||
struct ImplementConversionICU : public UnicodeUtil::ConversionICU, BaseICU
|
class ImplementConversionICU : public UnicodeUtil::ConversionICU, BaseICU
|
||||||
{
|
{
|
||||||
public:
|
private:
|
||||||
ImplementConversionICU(int aMajorVersion, int aMinorVersion)
|
ImplementConversionICU(int aMajorVersion, int aMinorVersion)
|
||||||
: BaseICU(aMajorVersion, aMinorVersion)
|
: BaseICU(aMajorVersion, aMinorVersion)
|
||||||
{
|
{
|
||||||
@ -186,12 +186,7 @@ public:
|
|||||||
|
|
||||||
module = ModuleLoader::fixAndLoadModule(filename);
|
module = ModuleLoader::fixAndLoadModule(filename);
|
||||||
if (!module)
|
if (!module)
|
||||||
{
|
return;
|
||||||
//(Arg::Gds(isc_random) << "Missing library" <<
|
|
||||||
// Arg::Gds(isc_random) << filename).raise();
|
|
||||||
// Instead raise 'empty' exception in order to ignore "Missing library" later
|
|
||||||
LongJump::raise();
|
|
||||||
}
|
|
||||||
|
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
@ -232,6 +227,21 @@ public:
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public:
|
||||||
|
static ImplementConversionICU* create(int majorVersion, int minorVersion)
|
||||||
|
{
|
||||||
|
ImplementConversionICU* o = FB_NEW(*getDefaultMemoryPool()) ImplementConversionICU(
|
||||||
|
majorVersion, minorVersion);
|
||||||
|
|
||||||
|
if (!o->module)
|
||||||
|
{
|
||||||
|
delete o;
|
||||||
|
o = NULL;
|
||||||
|
}
|
||||||
|
|
||||||
|
return o;
|
||||||
|
}
|
||||||
|
|
||||||
private:
|
private:
|
||||||
AutoPtr<ModuleLoader::Module> module;
|
AutoPtr<ModuleLoader::Module> module;
|
||||||
};
|
};
|
||||||
@ -1027,10 +1037,9 @@ UnicodeUtil::ConversionICU& UnicodeUtil::getConversionICU()
|
|||||||
{
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
convIcu = FB_NEW(*getDefaultMemoryPool()) ImplementConversionICU(*major, minor);
|
if ((convIcu = ImplementConversionICU::create(*major, minor)))
|
||||||
return *convIcu;
|
return *convIcu;
|
||||||
}
|
}
|
||||||
catch (const LongJump&) { }
|
|
||||||
catch (const Exception& ex)
|
catch (const Exception& ex)
|
||||||
{
|
{
|
||||||
ex.stuffException(&lastError);
|
ex.stuffException(&lastError);
|
||||||
|
Loading…
Reference in New Issue
Block a user