On Thu, 26 Oct 2023 06:56:16 GMT, Daniel Jeliński <[email protected]> wrote:

> The removed functions are empty on all platforms.
> 
> This patch also removes calls to `Toolkit.loadLibraries();` in classes that 
> no longer have any native methods. The call was needed to ensure that the 
> native awt library is loaded.
> 
> Client libs tests passed.

It looks good to me. The only concern I have, similar to Phil, is that peer 
implementations do not load the toolkit libraries. For this reason, I am for 
keeping the call to `Toolkit.loadLibraries()` in the static initializer of 
`java.awt.Button`, `java.awt.FileDialog`, `java.awt.KeyboardFocusManager` and 
`java.awt.TextField`.

src/java.desktop/share/classes/java/awt/Button.java line 128:

> 126:     static {
> 127:         /* ensure that the necessary native libraries are loaded */
> 128:         Toolkit.loadLibraries();

I think it is safer to preserve loading the toolkit libraries: `Button` is a 
peered component and I can't see any of the peers loads the libraries.

src/java.desktop/share/classes/java/awt/FileDialog.java line 146:

> 144:     static {
> 145:         /* ensure that the necessary native libraries are loaded */
> 146:         Toolkit.loadLibraries();

The same is here: I see no clear path to load the toolkit libraries from the 
peers, and peers do have native methods, including `initIDs`.

It looks as if peer implementations depend on the fact that the corresponding 
public API classes ensure the libraries are loaded.

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

Marked as reviewed by aivanov (Reviewer).

PR Review: https://git.openjdk.org/jdk/pull/16372#pullrequestreview-1701464849
PR Review Comment: https://git.openjdk.org/jdk/pull/16372#discussion_r1374373100
PR Review Comment: https://git.openjdk.org/jdk/pull/16372#discussion_r1374384221

Reply via email to