@watk  https://github.com/neovim/neovim/wiki/C-programming says to be judicious about it.

`sizeof(*var)` is good to avoid a situation where `var` may change from `int` to `long` and the buffer size becomes too small.

The allocate struct idiom is way too simple that I think my approach is good. I can argue about how more fragile `sizeof(*newsign)` actually is.