On Mon, 18 Sep 2023 14:44:13 GMT, Daniel Jeliński <djelin...@openjdk.org> wrote:
> 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. Okay, if my reading of this is correct: the delay loading was done because `SHGetKnownFolderPath` is not available before Vista, so when accessing the function we can catch the exception and try `SHGetFolderPath` instead. So, this mechanism is safe to remove if we no longer support Windows XP/2000. I'm not sure what the policy on that is though. ------------- PR Comment: https://git.openjdk.org/jdk/pull/15789#issuecomment-1723746516