CommonLibSSE NG
HeapBlock.h
Go to the documentation of this file.
1 #pragma once
2 
3 namespace RE
4 {
5  class HeapBlock
6  {
7  public:
8  struct Free
9  {
10  public:
11  // members
13  };
14  static_assert(sizeof(Free) == 0x8);
15 
16  struct Used
17  {
18  public:
19  [[nodiscard]] std::uint32_t GetCheckPoint() const;
20  [[nodiscard]] std::uint32_t GetMemContext() const;
21  [[nodiscard]] std::uint32_t GetStackTrace() const;
22 
23  // members
24  bool memContext1: 1; // 0 - 0
25  bool memContext2: 1; // 0 - 1
26  bool memContext3: 1; // 0 - 2
27  bool memContext4: 1; // 0 - 3
28  bool memContext5: 1; // 0 - 4
29  bool memContext6: 1; // 0 - 5
30  bool memContext7: 1; // 0 - 6
31  bool memContext8: 1; // 0 - 7
32  bool stackTrace1: 1; // 1 - 0
33  bool stackTrace2: 1; // 1 - 1
34  bool stackTrace3: 1; // 1 - 2
35  bool stackTrace4: 1; // 1 - 3
36  bool stackTrace5: 1; // 1 - 4
37  bool stackTrace6: 1; // 1 - 5
38  bool stackTrace7: 1; // 1 - 6
39  bool stackTrace8: 1; // 1 - 7
40  bool stackTrace9: 1; // 2 - 0
41  bool stackTrace10: 1; // 2 - 1
42  bool stackTrace11: 1; // 2 - 2
43  bool stackTrace12: 1; // 2 - 3
44  bool stackTrace13: 1; // 2 - 4
45  bool stackTrace14: 1; // 2 - 5
46  bool stackTrace15: 1; // 2 - 6
47  bool stackTrace16: 1; // 2 - 7
48  bool stackTrace17: 1; // 3 - 0
49  bool stackTrace18: 1; // 3 - 1
50  bool stackTrace19: 1; // 3 - 2
51  bool stackTrace20: 1; // 3 - 3
52  bool stackTrace21: 1; // 3 - 4
53  bool stackTrace22: 1; // 3 - 5
54  bool checkPoint1: 1; // 3 - 6
55  bool checkPoint2: 1; // 3 - 7
56  };
57  static_assert(sizeof(Used) == 0x4);
58 
59  union FreeOrUsed
60  {
63  };
64  static_assert(sizeof(FreeOrUsed) == 0x8);
65 
66  // members
67  std::size_t memSize; // 00
71  };
72  static_assert(sizeof(HeapBlock) == 0x20);
73 }
Definition: HeapBlock.h:6
std::size_t memSize
Definition: HeapBlock.h:64
HeapBlock * nextFree
Definition: HeapBlock.h:70
FreeOrUsed freeOrUsed
Definition: HeapBlock.h:69
HeapBlock * previous
Definition: HeapBlock.h:68
Definition: AbsorbEffect.h:6
Definition: HeapBlock.h:9
HeapBlock * prevFree
Definition: HeapBlock.h:12
Definition: HeapBlock.h:17
bool stackTrace6
Definition: HeapBlock.h:37
bool stackTrace1
Definition: HeapBlock.h:32
std::uint32_t GetCheckPoint() const
bool stackTrace9
Definition: HeapBlock.h:40
bool stackTrace15
Definition: HeapBlock.h:46
bool stackTrace12
Definition: HeapBlock.h:43
std::uint32_t GetStackTrace() const
bool memContext2
Definition: HeapBlock.h:25
bool stackTrace20
Definition: HeapBlock.h:51
bool stackTrace10
Definition: HeapBlock.h:41
bool stackTrace21
Definition: HeapBlock.h:52
bool memContext4
Definition: HeapBlock.h:27
bool memContext5
Definition: HeapBlock.h:28
bool stackTrace17
Definition: HeapBlock.h:48
bool memContext8
Definition: HeapBlock.h:31
bool stackTrace19
Definition: HeapBlock.h:50
bool stackTrace14
Definition: HeapBlock.h:45
std::uint32_t GetMemContext() const
bool memContext6
Definition: HeapBlock.h:29
bool stackTrace16
Definition: HeapBlock.h:47
bool checkPoint1
Definition: HeapBlock.h:54
bool stackTrace2
Definition: HeapBlock.h:33
bool stackTrace13
Definition: HeapBlock.h:44
bool stackTrace4
Definition: HeapBlock.h:35
bool stackTrace11
Definition: HeapBlock.h:42
bool stackTrace8
Definition: HeapBlock.h:39
bool memContext3
Definition: HeapBlock.h:26
bool checkPoint2
Definition: HeapBlock.h:55
bool stackTrace5
Definition: HeapBlock.h:36
bool memContext1
Definition: HeapBlock.h:24
bool stackTrace18
Definition: HeapBlock.h:49
bool stackTrace3
Definition: HeapBlock.h:34
bool stackTrace7
Definition: HeapBlock.h:38
bool memContext7
Definition: HeapBlock.h:30
bool stackTrace22
Definition: HeapBlock.h:53
Definition: HeapBlock.h:60
Used used
Definition: HeapBlock.h:62
Free free
Definition: HeapBlock.h:61