Skip to content

Commit 69e3024

Browse files
author
Andrey Turbanov
committed
8349157: Unnecessary Hashtable usage in XKeysym.javaKeycode2KeysymHash
Reviewed-by: aivanov, serb
1 parent 970533d commit 69e3024

File tree

1 file changed

+11
-13
lines changed

1 file changed

+11
-13
lines changed

src/java.desktop/unix/classes/sun/awt/X11/XKeysym.java

Lines changed: 11 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/*
2-
* Copyright (c) 2005, 2018, Oracle and/or its affiliates. All rights reserved.
2+
* Copyright (c) 2005, 2025, Oracle and/or its affiliates. All rights reserved.
33
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
44
*
55
* This code is free software; you can redistribute it and/or modify it
@@ -37,7 +37,9 @@
3737
*/
3838

3939
package sun.awt.X11;
40+
4041
import java.util.Hashtable;
42+
import java.util.Map;
4143
import jdk.internal.misc.Unsafe;
4244

4345
import sun.util.logging.PlatformLogger;
@@ -68,7 +70,12 @@ int getKeyLocation() {
6870
// for robot only it seems to me. After that, we can remove lookup table
6971
// from XWindow.c altogether.
7072
// Another use for reverse lookup: query keyboard state, for some keys.
71-
static Hashtable<Integer, Long> javaKeycode2KeysymHash = new Hashtable<Integer, Long>();
73+
private static final Map<Integer, Long> javaKeycode2KeysymHash = Map.of(
74+
java.awt.event.KeyEvent.VK_CAPS_LOCK, XKeySymConstants.XK_Caps_Lock,
75+
java.awt.event.KeyEvent.VK_NUM_LOCK, XKeySymConstants.XK_Num_Lock,
76+
java.awt.event.KeyEvent.VK_SCROLL_LOCK, XKeySymConstants.XK_Scroll_Lock,
77+
java.awt.event.KeyEvent.VK_KANA_LOCK, XKeySymConstants.XK_Kana_Lock
78+
);
7279
static long keysym_lowercase = unsafe.allocateMemory(Native.getLongSize());
7380
static long keysym_uppercase = unsafe.allocateMemory(Native.getLongSize());
7481
static Keysym2JavaKeycode kanaLock = new Keysym2JavaKeycode(java.awt.event.KeyEvent.VK_KANA_LOCK,
@@ -289,9 +296,8 @@ static int getLegacyJavaKeycodeOnly( XKeyEvent ev ) {
289296
Keysym2JavaKeycode jkc = getJavaKeycode( keysym );
290297
return jkc == null ? java.awt.event.KeyEvent.VK_UNDEFINED : jkc.getJavaKeycode();
291298
}
292-
static long javaKeycode2Keysym( int jkey ) {
293-
Long ks = javaKeycode2KeysymHash.get( jkey );
294-
return (ks == null ? 0 : ks.longValue());
299+
static long javaKeycode2Keysym(int jkey) {
300+
return javaKeycode2KeysymHash.getOrDefault(jkey, 0L);
295301
}
296302
/**
297303
Return keysym derived from a keycode and modifiers.
@@ -1716,14 +1722,6 @@ static long getKeysym( XKeyEvent ev ) {
17161722
keysym2JavaKeycodeHash.put( Long.valueOf(XKeySymConstants.hpXK_mute_asciitilde), new Keysym2JavaKeycode(java.awt.event.KeyEvent.VK_DEAD_TILDE, java.awt.event.KeyEvent.KEY_LOCATION_STANDARD));
17171723

17181724
keysym2JavaKeycodeHash.put( Long.valueOf(XConstants.NoSymbol), new Keysym2JavaKeycode(java.awt.event.KeyEvent.VK_UNDEFINED, java.awt.event.KeyEvent.KEY_LOCATION_UNKNOWN));
1719-
1720-
/* Reverse search of keysym by keycode. */
1721-
1722-
/* Add keyboard locking codes. */
1723-
javaKeycode2KeysymHash.put( java.awt.event.KeyEvent.VK_CAPS_LOCK, XKeySymConstants.XK_Caps_Lock);
1724-
javaKeycode2KeysymHash.put( java.awt.event.KeyEvent.VK_NUM_LOCK, XKeySymConstants.XK_Num_Lock);
1725-
javaKeycode2KeysymHash.put( java.awt.event.KeyEvent.VK_SCROLL_LOCK, XKeySymConstants.XK_Scroll_Lock);
1726-
javaKeycode2KeysymHash.put( java.awt.event.KeyEvent.VK_KANA_LOCK, XKeySymConstants.XK_Kana_Lock);
17271725
}
17281726

17291727
}

0 commit comments

Comments
 (0)