RFR (S) 8235765: Use of the long type should be avoided in shared code

Coleen Phillimore coleen.phillimore at oracle.com
Wed Aug 12 15:21:19 UTC 2020


Summary: Changed some long declarations to uint64_t/int64_t or unsigned 
int, depending on context.

There are still 'long' declarations left in the code, but they should be 
changed by developers when working in that code and not as a blanket 
change.  I didn't change a couple of longs in jfr/leakprofiler, for 
example.  These are the ones I changed though with some explanation of why:

src/hotspot/share/memory/filemap.hpp

This can be negative so changed to int64_t.

src/hotspot/share/runtime/mutex.cpp

The PlatformMutex code takes jlong, which is signed, so that's why I 
changed these to int64_t.

runtime/interfaceSupport.inline.hpp

These counters are actually intervals so I changed them to unsigned int.

src/hotspot/share/compiler/compileBroker.hpp

_peak_compilation_time is signed because it is compared with jlong which 
is signed.
Same with total_compilation_time - elapsedTimer.milliseconds() returns 
jlong.

Tested with tier1-3.  Tier1 on linux-x64-debug, windows-x64-debug, 
macosx-x64-debug, linux-aarch64-debug.  Also built on: 
linux-arm32,linux-ppc64le-debug,linux-s390x-debug,linux-x64-zero.

open webrev at http://cr.openjdk.java.net/~coleenp/2020/8235765.01/webrev
bug link https://bugs.openjdk.java.net/browse/JDK-8235765

Thanks,
Coleen


More information about the hotspot-dev mailing list