-
Petr Špaček authored
Originally division around sizeof(uint32_t) caused silent truncation for struct kr_qflags with sizes not multiple of 4 bytes. Attempts to optimize using uint32_t blocks could lead to read/write beyond end of uint32_t so I'm not willing to risk it. Also, the code was refactored to avoid duplication between _set and _clear. Quick look into assembly produced by gcc 7.2.1 with -O2 on x86_64 confirms that all auxiliary functions got inlined so there are not extra function calls. Unit tests are attached. These fail on the previous version of _set() and _clear() and work now.