Zebediah Figura (@zfigura) commented about dlls/ntdll/heap.c:
struct DECLSPEC_ALIGN(BLOCK_ALIGN) group { struct block block;
- struct list entry;
- SINGLE_LIST_ENTRY entry; /* one bit for each free block and the highest bit as unlinked flag */ LONG free_bits;
};
#define GROUP_FLAG_FREE (1u << (sizeof(((struct group *)0)->free_bits) * 8 - 1))
+/* entry actually is a SLIST_ENTRY and needs to be 16B aligned on 64bit */ +C_ASSERT( offsetof(struct group, entry) % 8 == 0 );
Wait, why can't we just define it as an SLIST_ENTRY then?