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

Reply via email to