RFR: 8214377: ZGC: Don't use memset to initialize array of ZForwardingTableEntry

Per Liden per.liden at oracle.com
Thu Nov 29 12:49:07 UTC 2018

Use placement new instead of memset() to avoid compiler warning/error 
when using GCC 8 with -Werror=class-memaccess (memset to initialize 
non-trivial object).

To avoid any undefined behavior I also added a loop to destruct the 
objects properly, but this loop will be compiled down to nothing.

I ran SPECjbb2015 to see if the execution time for "Prepare Relocation 
Set" was noticeably affected by this change (assuming memset does a 
batter job than then loop), but I can't see any real difference. I'll 
run a few more iterations over night just to make sure.

Bug: https://bugs.openjdk.java.net/browse/JDK-8214377
Webrev: http://cr.openjdk.java.net/~pliden/8214377/webrev.0


More information about the hotspot-gc-dev mailing list