RFR(XXS) 8249087 Symbol constructor unnecessarily initializes _body[0]
Ioi Lam
ioi.lam at oracle.com
Tue Jul 21 00:12:31 UTC 2020
Hi please review this very simple fix:
diff -r 19f26d72a8d0 src/hotspot/share/oops/symbol.cpp
--- a/src/hotspot/share/oops/symbol.cpp Mon Jul 20 14:24:19 2020 -0700
+++ b/src/hotspot/share/oops/symbol.cpp Mon Jul 20 17:11:57 2020 -0700
@@ -51,8 +51,11 @@
Symbol::Symbol(const u1* name, int length, int refcount) {
_hash_and_refcount = pack_hash_and_refcount((short)os::random(),
refcount);
_length = length;
- _body[0] = 0; // in case length == 0
memcpy(_body, name, length);
+ // For symbols of length 0 and 1: _body[0] (and _body[1]) are
uninitialized and may
+ // contain random values, which will only be read by
Symbol::identity_hash(),
+ // which would tolerate such randomness. These values never change
during the lifetime
+ // of the Symbol.
}
Passed hs tiers 1/2. Running tiers 3/4 now.
Thanks
- Ioi
More information about the hotspot-runtime-dev
mailing list