RFR: 8297534: Specify the size of MEMFLAGS [v2]

Thomas Schatzl tschatzl at openjdk.org
Thu Nov 24 14:47:50 UTC 2022


On Thu, 24 Nov 2022 11:25:21 GMT, Johan Sjölen <jsjolen at openjdk.org> wrote:

>> Hi!
>> 
>> In MallocHeader we assume that MEMFLAGS can be stored in a uint8_t, see:
>> 
>> ```c++
>> class MallocHeader {
>> 
>>   NOT_LP64(uint32_t _alt_canary);
>>   const size_t _size;
>>   const uint32_t _mst_marker;
>>   const uint8_t _flags;
>>   const uint8_t _unused;
>>   uint16_t _canary;
>> // SNIP!
>>   inline MEMFLAGS flags() const { return (MEMFLAGS)_flags; }
>> 
>> 
>> With C++11 we can specify the underlying type of an `enum class`, so let's just do that. If we generate 257 memflags we'll get a compile error. I don't believe that this would lead to any change in the behavior of the code.
>> 
>> Testing: Compiled the code. Running tier1 testing right now.
>
> Johan Sjölen has updated the pull request incrementally with one additional commit since the last revision:
> 
>   Make _flags be of type MEMFLAGS

Lgtm.

-------------

Marked as reviewed by tschatzl (Reviewer).

PR: https://git.openjdk.org/jdk/pull/11336


More information about the hotspot-runtime-dev mailing list