Integrated: 8253555: Make ByteSize and WordSize typed scoped enums
Stefan Karlsson
stefank at openjdk.java.net
Fri Sep 25 10:33:30 UTC 2020
On Thu, 24 Sep 2020 06:23:34 GMT, Stefan Karlsson <stefank at openjdk.org> wrote:
> It's a common bug in HotSpot that byte values are used when the code asks for words, and vice versa. One attempt to
> prevent that has been to use the classes ByteSize and WordSize, to make the compiler detect these problems. The current
> implementation is a bit problematic, because both types are int typedefs in release builds, and wrapper classes in
> debug builds. This means that we can't use these types in overload resolution. I propose that we fix that by changing
> the type to scoped enums with a fixed int type. The compiler will then be apple to completely separate ByteSize,
> WordSize, and ints. We also don't need different code in release vs debug builds. FWIW, I once created a size_t
> versions of these classes and annotated all the metaspace code with these types. This experiment flushed out a handful
> of bugs (some of them were known and the reason for trying that experiment) There are some controversy about having
> these classes around. See for example: JDK-8041956: remove ByteSize and WordSize classes I hope we can stay away from
> that discussion in this PR.
This pull request has now been integrated.
Changeset: 1f5a0334
Author: Stefan Karlsson <stefank at openjdk.org>
URL: https://git.openjdk.java.net/jdk/commit/1f5a0334
Stats: 236 lines in 9 files changed: 59 ins; 162 del; 15 mod
8253555: Make ByteSize and WordSize typed scoped enums
Reviewed-by: kbarrett, tschatzl
-------------
PR: https://git.openjdk.java.net/jdk/pull/328
More information about the hotspot-dev
mailing list