postgres.git / summary / log / commit / refs
commit 805a397db40bd49789946e8fe42e564d564fc27b
Author: Peter Eisentraut <peter@eisentraut.org>
Date: Sun Aug 28 07:55:04 2022 +0000
First released in: 16.0
Add more detail why repalloc and pfree do not accept NULL pointers
Per discussion, we choose not to change this. This just gives a
little bit more information.
Discussion: https://www.postgresql.org/message-id/flat/cf26e970-8e92-59f1-247a-aa265235075b%40enterprisedb.com
src/backend/utils/mmgr/README | 6 ++++++
1 file changed, 6 insertions(+)
diff --git a/src/backend/utils/mmgr/README b/src/backend/utils/mmgr/README
index 221b4bd3433..777481c83d3 100644
--- a/src/backend/utils/mmgr/README
+++ b/src/backend/utils/mmgr/README
@@ -67,6 +67,12 @@ chunk might later be repalloc'd larger; it can also be pfree'd without
error. Similarly, repalloc allows realloc'ing to zero size.
* pfree and repalloc do not accept a NULL pointer. This is intentional.
+(For repalloc, this is necessary: As mentioned above, repalloc does
+not depend on the current memory context. But then it needs to know
+which memory context to do the allocation in. So the first allocation
+has to be done outside of repalloc. For pfree, this behavior is
+mostly historical and partially because the extra check would impact
+performance.)
The Current Memory Context
[parent: 36389a060ca6]