undefined behavior (so we can do whatever we want) while the latter doesn't happen much in actual practice. These changes make these functions considerably smaller and faster.