RFR: 8316421: libjava should load shell32.dll eagerly

Daniel Jeliński djelinski at openjdk.org
Mon Sep 18 15:08:11 UTC 2023


Please review this patch that makes java.dll load shell32.dll earlier. Delay-loading requires some additional code (delayimp.lib), and offers no benefits since we always load shell32 during JVM startup.

Other than removing the delayload clause, the patch also cleans up the `getHomeFromShell32` method:
- the WinXP code path is removed. The documentation states that [the older function just calls the new one with translated parameters](https://learn.microsoft.com/en-us/windows/win32/api/shlobj_core/nf-shlobj_core-shgetfolderpatha).
- `CoTaskMemFree` is now called if `SHGetKnownFolderPath` fails. This is suggested by the documentation, but probably never needed in practice.

This change shouldn't have any observable effect on behavior on any of the supported operating systems. It reduced the size of java.dll by 2KB on my machine.
No new tests. Existing tier1-2 tests continue to pass.

-------------

Commit messages:
 - Clean up getHomeFromShell32
 - Eager load shell32

Changes: https://git.openjdk.org/jdk/pull/15789/files
 Webrev: https://webrevs.openjdk.org/?repo=jdk&pr=15789&range=00
  Issue: https://bugs.openjdk.org/browse/JDK-8316421
  Stats: 32 lines in 2 files changed: 0 ins; 26 del; 6 mod
  Patch: https://git.openjdk.org/jdk/pull/15789.diff
  Fetch: git fetch https://git.openjdk.org/jdk.git pull/15789/head:pull/15789

PR: https://git.openjdk.org/jdk/pull/15789


More information about the build-dev mailing list