RFR: 8297534: Specify the size of MEMFLAGS [v3]
Thomas Stuefe
stuefe at openjdk.org
Fri Nov 25 13:16:33 UTC 2022
On Fri, 25 Nov 2022 12:03:48 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:
>
> Add STATIC_ASSERT
Still good.
-------------
PR: https://git.openjdk.org/jdk/pull/11336
More information about the hotspot-runtime-dev
mailing list