[PATCH][PUSHED] Fix windows build
sbergman at redhat.com
Thu Feb 23 09:04:44 PST 2012
On 02/23/2012 02:35 PM, Lubos Lunak wrote:
> On Thursday 23 of February 2012, Stephan Bergmann wrote:
>> On 02/23/2012 10:56 AM, Stephan Bergmann wrote:
>>> On 02/23/2012 09:04 AM, Matúš Kukan wrote:
>>>> The patch helped me to build on Windows but I did not push because I
>>>> don't know what really was the problem, how my change helped to solve
>>>> that and especially if this is the proper solution.
>>>> Maybe it is related to the recent change in OUString class ?
>>>> If the patch is good, you can push, I will be here in the evening.
>>> Yes, fix should be good. With the newly added rtl::OUString ctor, a
>>> string literal can now implicitly be converted to an rtl::OUString,
>>> which can lead to ambiguities. In this case, SimpleResMgr has ctors that
>>> take either a char const * or an rtl::OUString const&. Probably
>>> something that should be cleaned up, leaving SimpleResMgr with just one
>>> of the two ctors. (And CREATEVERSIONRESMGR_NAME is just a glorious macro
>>> to turn its argument into a string literal, so can safely be dropped.)
>> But then again, what is odd is that there are also other similar calls
>> to SimpleResMgr that should also cause this problem (e.g., in
> My guess would be it is because the second argument to SimpleResMgr is a
> const reference for the const char* variant and a non-const reference for the
> OUString variant, which avoids the ambiguity in all the other places where
> the value passed is const.
> BTW, the two ctor variants even do different things, despite looking
> semantically equivalent at a first look, so this looks like misdesigned API
> to me.
OMG. In this case, it might be safer to change the code again to make
it actually use the ctor variant it used before (char const * and Locale
const &). Matúš, can you check whether the attached
0001-Rewrite-fix-to-use-the-same-SimpleResMgr-ctor-as-it-.patch would be
sufficiently unambiguous for MSVC?
More information about the LibreOffice