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

Reply via email to