From my comment below, I don't think `p` should be initialized by the return from `toUtfWz`. Why not just initialize it afterwards?

```D
to.toUTFWz(sz);
auto p = sz[].ptr;
...
```

Related (Not issues, doesn't need to be addressed): Maybe it is worth having a `.ptr` member on `ScopeBuffer`?

Also, if you place 2 different words in sz, maybe you should bump up tmpbuf's size?