RFR: 8337683: Fix -Wconversion problem with arrayOop.hpp [v5]
    Dean Long 
    dlong at openjdk.org
       
    Thu Aug  8 19:33:39 UTC 2024
    
    
  
On Thu, 8 Aug 2024 11:07:41 GMT, Coleen Phillimore <coleenp at openjdk.org> wrote:
>> src/hotspot/share/oops/arrayOop.hpp line 74:
>> 
>>> 72: #ifdef ASSERT
>>> 73:     // make sure it isn't called before UseCompressedOops is initialized.
>>> 74:     static int arrayoopdesc_hs = 0;
>> 
>> Why not just do a `checked_cast<int>` on the return statement? (or even a range assert and a static cast?)
>
> Because restricting the types is better than checked_cast.  The return type of length_offset_in_bytes() is int.
Also I think the current checked_cast still has problems with signed <--> unsigned.
Another technique to use an even more restricted type.  For example, if these offset_in_bytes() functions returned uint16_t, then the value can be widened to either `int` or `size_t` without a cast.
-------------
PR Review Comment: https://git.openjdk.org/jdk/pull/20431#discussion_r1710159357
    
    
More information about the hotspot-dev
mailing list