so should overflow be ```[alloc, w.max].max - w.max``` instead?