On Fri, 9 Sep 2022 13:38:14 GMT, Julian Waters <[email protected]> wrote:
> tstrings::any() has an overload for std::wstring (if required) but is missing
> the corresponding operator overload for std::string, leaving only the
> templated one as a fallback, which will expand into a std::wostringstream <<
> std::string operation. This isn't particularly safe on Windows, considering
> that JDK-8292008 and JDK-8247283 have been recently merged, and can
> sporadically cause build failures. This change simply adds the missing
> overload with the appropriate format handling that jpackage expects from
> std::string. Also contains minor name changes to fit the rest of the
> parameter names in the other overloads.
Changes requested by asemenyuk (Reviewer).
src/jdk.jpackage/share/native/common/tstrings.h line 363:
> 361: return *this;
> 362: }
> 363:
I guess you also need
any& operator << (LPSTR v) {
data << (v ? fromUtf8(v) : "NULL");
return *this;
}
any& operator << (LPCSTR v) {
data << (v ? fromUtf8(v) : "NULL");
return *this;
}
to make a complete set of overloads
-------------
PR: https://git.openjdk.org/jdk/pull/10231