RFR: 8272756: Remove unnecessary explicit initialization of volatile variables in java.desktop

Andrey Turbanov github.com+741251+turbanoff at openjdk.java.net
Mon Sep 20 11:58:53 UTC 2021


On Fri, 20 Aug 2021 09:41:15 GMT, Сергей Цыпанов <github.com+10835776+stsypanov at openjdk.org> wrote:

> This is a continuation of
> 
> - https://bugs.openjdk.java.net/browse/JDK-6736490
> - https://bugs.openjdk.java.net/browse/JDK-8035284
> - https://bugs.openjdk.java.net/browse/JDK-8145680
> - https://bugs.openjdk.java.net/browse/JDK-8251548
> 
> As mentioned in JDK-6736490:
> 
> _An explicit initialization of a volatile class instance variable, such as private volatile Object = null; or private volatile int scale = 0; is unnecessary since the Java spec automatically initializes objects to null and primitive type short, int, long, float and double to 0 and boolean to false. Explicit initialization of volatile variable to a value the same as the default implicit initialized value results in an unnecessary store and membar operation._

As I can see there are a few more zero-initializations of volatiles. Are they intentionally skipped?
1. sun.lwawt.macosx.CPlatformEmbeddedFrame#screenX
2. sun.lwawt.macosx.CPlatformEmbeddedFrame#screenY
3. sun.lwawt.macosx.CWarningWindow#currentIcon
4. com.sun.media.sound.SoftSynthesizer.WeakAudioStream#silent_samples

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

PR: https://git.openjdk.java.net/jdk/pull/5197



More information about the client-libs-dev mailing list