16.03.2016 16:14, Александр Пешков wrote:
> In current code I see that isc_spb_utf8_filename in SPB received by
> IService::start()
> is completely ignored
>
> Not ignored but passed to DPBs later
Code seems to be different:
ClumpletWriter spb(ClumpletReader::SpbStart, MAX_DPB_SIZE, spbItems,
spbLength);
if (!utf8Connection)
{
IntlSpbStart().toUtf8(spb);
}
I see no spb.find(isc_spb_utf8_filename) here. If (for chance) someone pass
utf8 names
into IService::start(), but not into attachServiceManager(), the names will be
converted
twice.
> Does this code in attachServiceManager() look like always converted:
> bool utfData = spbWriter.find(isc_spb_utf8_filename);
> // skip...
> if (!utfData)
> {
> IntlSpb().toUtf8(spbWriter);
> }
Yes, but later the value of utfData is stored in utf8Connection member, so
the tag
become sticky and overrides value passed to IService::start().
> It's inserted in IntlParametersBlock.cpp
>
> UCHAR utf8Tag = getUtf8Tag();
> if (utf8Tag)
> {
> pb.insertTag(utf8Tag);
> }
IntlSpbStart::getUtf8Tag() returns 0, so it is not inserted.
> it works another way - not like you describe
Yep.
Another funny thing: isc_spb_dbname in isc_action_svc_db_stats block is not
recognized
as a string at all. Is it intended to be a backward compatibility bug?
--
WBR, SD.
------------------------------------------------------------------------------
Transform Data into Opportunity.
Accelerate data analysis in your applications with
Intel Data Analytics Acceleration Library.
Click to learn more.
http://pubads.g.doubleclick.net/gampad/clk?id=278785231&iu=/4140
Firebird-Devel mailing list, web interface at
https://lists.sourceforge.net/lists/listinfo/firebird-devel