aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/include/lib/radixtree.h15
1 files changed, 3 insertions, 12 deletions
diff --git a/src/include/lib/radixtree.h b/src/include/lib/radixtree.h
index 6432b51a246..d4167503892 100644
--- a/src/include/lib/radixtree.h
+++ b/src/include/lib/radixtree.h
@@ -719,7 +719,6 @@ struct RT_RADIX_TREE
/* leaf_context is used only for single-value leaves */
MemoryContextData *leaf_context;
#endif
- MemoryContextData *iter_context;
};
/*
@@ -1836,14 +1835,6 @@ RT_CREATE(MemoryContext ctx)
tree = (RT_RADIX_TREE *) palloc0(sizeof(RT_RADIX_TREE));
tree->context = ctx;
- /*
- * Separate context for iteration in case the tree context doesn't support
- * pfree
- */
- tree->iter_context = AllocSetContextCreate(ctx,
- RT_STR(RT_PREFIX) "_radix_tree iter context",
- ALLOCSET_SMALL_SIZES);
-
#ifdef RT_SHMEM
tree->dsa = dsa;
dp = dsa_allocate0(dsa, sizeof(RT_RADIX_TREE_CONTROL));
@@ -2075,7 +2066,8 @@ RT_FREE(RT_RADIX_TREE * tree)
/***************** ITERATION *****************/
/*
- * Create and return the iterator for the given radix tree.
+ * Create and return an iterator for the given radix tree
+ * in the caller's memory context.
*
* Taking a lock in shared mode during the iteration is the caller's
* responsibility.
@@ -2086,8 +2078,7 @@ RT_BEGIN_ITERATE(RT_RADIX_TREE * tree)
RT_ITER *iter;
RT_CHILD_PTR root;
- iter = (RT_ITER *) MemoryContextAllocZero(tree->iter_context,
- sizeof(RT_ITER));
+ iter = (RT_ITER *) palloc0(sizeof(RT_ITER));
iter->tree = tree;
Assert(RT_PTR_ALLOC_IS_VALID(tree->ctl->root));