RFR: 8297534: Specify the size of MEMFLAGS

Johan Sjölen jsjolen at openjdk.org
Wed Nov 23 22:27:09 UTC 2022


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.

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

Commit messages:
 - Make MEMFLAGS be stored in uint8_t

Changes: https://git.openjdk.org/jdk/pull/11336/files
 Webrev: https://webrevs.openjdk.org/?repo=jdk&pr=11336&range=00
  Issue: https://bugs.openjdk.org/browse/JDK-8297534
  Stats: 1 line in 1 file changed: 0 ins; 0 del; 1 mod
  Patch: https://git.openjdk.org/jdk/pull/11336.diff
  Fetch: git fetch https://git.openjdk.org/jdk pull/11336/head:pull/11336

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


More information about the hotspot-runtime-dev mailing list