RFR: 8349254: Disable "best-fit" mapping on Windows environment variables [v2]
Naoto Sato
naoto at openjdk.org
Fri Feb 7 20:15:13 UTC 2025
On Fri, 7 Feb 2025 18:53:40 GMT, Justin Lu <jlu at openjdk.org> wrote:
>> Naoto Sato has updated the pull request incrementally with one additional commit since the last revision:
>>
>> Reflects review
>
> src/java.base/share/native/libjli/args.c line 603:
>
>> 601: /*
>> 602: * getenv() without best-fit mapping
>> 603: */
>
> I think a quick comment that says something along the lines of
>
>
> env variable name: code page -> UTF-16
> variable value : UTF-16 -> code page
>
>
> would be helpful to overview what is happening here.
Thanks. I modified the comment.
> src/java.base/share/native/libjli/args.c line 611:
>
>> 609: LPWSTR wcVarName = JLI_MemAlloc(wcCount * sizeof(wchar_t));
>> 610: if (MultiByteToWideChar(CP_ACP, 0, var_name, -1, wcVarName, wcCount) != 0) {
>> 611: LPWSTR wcEnvVar = _wgetenv(wcVarName);
>
> Since we are in Windows specific code, would it make sense to call `GetEnvironmentVariableW` over `_wgetenv`? It won't be as concise since we will have to follow the 2-call style of determining the size, then filling the buffer; but I presume it avoids some overhead, since it's directly apart of the Win32 API?
I think the overhead is negligible. If we use the Get... function, we will need to allocate/deallocate the intermediate buffer, which will make the code complex.
> test/jdk/tools/launcher/DisableBestFitMappingTest.java line 32:
>
>> 30: * @requires (os.family == "windows")
>> 31: * @library /test/lib
>> 32: * @run junit DisableBestFitMappingTest
>
> I think it might be best to re-write this test as a non Junit test. Through IntelliJ it's hard to run this test, I presume because of the combination of it being a Junit test and having a `main` method? If I run the 'launcher' suite of tests, this test does not seem to be included.
I am not sure of this. Isn't it the issue in jtreg plugin? At least `make test TEST=...` will succeed.
-------------
PR Review Comment: https://git.openjdk.org/jdk/pull/23498#discussion_r1947128400
PR Review Comment: https://git.openjdk.org/jdk/pull/23498#discussion_r1947128384
PR Review Comment: https://git.openjdk.org/jdk/pull/23498#discussion_r1947128439
More information about the core-libs-dev
mailing list