RFR: 8166651: OrderAccess::load_acquire &etc should have const parameters (original) (raw)
Kim Barrett kim.barrett at oracle.com
Wed May 24 23:42:41 UTC 2017
- Previous message: [XS] RFR : 8180945 : vmError.cpp : adjust dup and fclose
- Next message: RFR: 8166651: OrderAccess::load_acquire &etc should have const parameters
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
Please review this change to Atomic::load and OrderAccess::load_acquire overloads to make their source const qualified, e.g. instead of "volatile T*" make them "const volatile T*". This eliminates the need for casting away const when, for example, applying one of these operations to a member variable when in a const-qualified method.
There are probably places that previously required casting away const but now do not. Similarly, there are probably places where values couldn't be const or member functions couldn't be const qualified, but now can be. I did a little searching and found a few candidates, but none that were otherwise trivial to add to this change, so haven't included any.
This change touches platform-specific code for non-Oracle supported platforms that I can't test, so I'd like reviews from the respective platform owners.
Aside regarding aarch64: I don't know why gcc's __atomic_load doesn't const-qualify the source argument; that seems like a bug. Or maybe they are, but not documented that way. And I wonder why the aarch64 port uses __atomic_load rather than __atomic_load_n.
CR: https://bugs.openjdk.java.net/browse/JDK-8166651
Webrev: http://cr.openjdk.java.net/~kbarrett/8166651/hotspot.00
Testing: JPRT
- Previous message: [XS] RFR : 8180945 : vmError.cpp : adjust dup and fclose
- Next message: RFR: 8166651: OrderAccess::load_acquire &etc should have const parameters
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]