RFR: 8293595: tstrings::any() is missing an overload
Alexey Semenyuk
asemenyuk at openjdk.org
Mon Sep 19 17:29:49 UTC 2022
On Fri, 9 Sep 2022 13:38:14 GMT, Julian Waters <jwaters at openjdk.org> 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
More information about the hotspot-dev
mailing list