I wrote: > It kind of feels that the argument order should be pointer, oldsize, size. > It feels even more strongly that people will get the ordering wrong, > whichever we choose. Is there a way to make that more bulletproof?
Actually ... an even-more-terrifyingly-plausible misuse is that the supplied oldsize is different from the actual previous allocation. We should try to check that. In MEMORY_CONTEXT_CHECKING builds it should be possible to assert that oldsize == requested_size. We don't have that data if !MEMORY_CONTEXT_CHECKING, but we could at least assert that oldsize <= allocated chunk size. regards, tom lane