patch for postgresql driver
Lionel Elie Mamane
lionel at mamane.lu
Wed Apr 17 01:14:58 PDT 2013
On Wed, Apr 17, 2013 at 08:28:21AM +0100, Wols Lists wrote:
> On 17/04/13 02:10, Lionel Elie Mamane wrote:
>> On Tue, Apr 16, 2013 at 09:24:03PM +0100, Wols Lists wrote:
>>> On 16/04/13 20:28, Lionel Elie Mamane wrote:
>>>> RTL_CONSTASCII_STRINGPARAM is a hack/optimisation specific to
>>>> compile-time constants. With your change, the string is not anymore
>>>> a compile-time constant
>>> I'm puzzled that it's not a compile-time constant
>> Well, it is not even a run-time constant: at each iteration of the
>> loop, it is a different value.
> Yes, the value passed changes each time, but the array itself is a
> constant array of constant strings ...
If you want to exploit that fact, you could do something like that:
static std::vector< std::pair< char*, sal_Int32 > > keyword_list =
boost::assign::list_of(::std::pair(RTL_CONSTASCII_STRINGPARAM( "password" )))
(::std::pair(RTL_CONSTASCII_STRINGPARAM( "user" )))
(etc)
(etc)
(etc).to_adapter()
....
if( args[i].Name.matchIgnoreAsciiCaseAsciiL( keyword_list[j].first, keyword_list[j].second ))
(or for more C++-y style, use an iterator instead of indexed access)
Yes, C++03 makes this *much* harder than it could be (C++11 has a
better solution: http://en.wikipedia.org/wiki/C++11#Initializer_lists )
IMHO it is *far* more trouble than it is worth.
--
Lionel
More information about the LibreOffice
mailing list