diff --git a/src/rencache.c b/src/rencache.c index 5c6de32..4750dbc 100644 --- a/src/rencache.c +++ b/src/rencache.c @@ -1,4 +1,5 @@ #include +#include #include "rencache.h" /* a cache over the software renderer -- all drawing operations are stored as @@ -78,6 +79,8 @@ static RenRect merge_rects(RenRect a, RenRect b) { static Command* push_command(int type, int size) { + size_t alignment = alignof(max_align_t) - 1; + size = (size + alignment) & ~alignment; Command *cmd = (Command*) (command_buf + command_buf_idx); int n = command_buf_idx + size; if (n > COMMAND_BUF_SIZE) {