You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@apr.apache.org by wr...@apache.org on 2001/08/02 07:24:42 UTC
cvs commit: apr/memory/unix apr_pools.c apr_sms_pools.c
wrowe 01/08/01 22:24:42
Modified: include apr_pools.h
memory/unix apr_pools.c apr_sms_pools.c
Log:
Modify this semantic to 1. keep in tune with apr return values (although
no apr_status_t is required) and 2. prepare for additional diagnostics
(passing the first arg, macroized, as a string 'name'.)
Revision Changes Path
1.55 +5 -4 apr/include/apr_pools.h
Index: apr_pools.h
===================================================================
RCS file: /home/cvs/apr/include/apr_pools.h,v
retrieving revision 1.54
retrieving revision 1.55
diff -u -r1.54 -r1.55
--- apr_pools.h 2001/07/23 22:19:13 1.54
+++ apr_pools.h 2001/08/02 05:24:42 1.55
@@ -329,14 +329,15 @@
#endif /* !APR_POOLS_ARE_SMS || DOXYGEN */
/**
- * Make a sub pool from the current pool
- * @param p The pool to use as a parent pool
+ * @param p The new sub-pool
+ * @param parent The pool to use as a parent pool
* @param apr_abort A function to use if the pool cannot allocate more memory.
- * @return The new sub-pool
+ * @deffunc void apr_pool_sub_make(apr_pool_t **p, apr_pool_t *parent, int (*apr_abort)(int retcode), const char *created)
* @remark The @a apr_abort function provides a way to quit the program if the
* machine is out of memory. By default, APR will return on error.
*/
-APR_DECLARE(apr_pool_t *) apr_pool_sub_make(apr_pool_t *p,
+APR_DECLARE(void) apr_pool_sub_make(apr_pool_t **p,
+ apr_pool_t *pparent,
int (*apr_abort)(int retcode));
#if defined(APR_POOL_DEBUG) || defined(DOXYGEN)
1.106 +14 -15 apr/memory/unix/apr_pools.c
Index: apr_pools.c
===================================================================
RCS file: /home/cvs/apr/memory/unix/apr_pools.c,v
retrieving revision 1.105
retrieving revision 1.106
diff -u -r1.105 -r1.106
--- apr_pools.c 2001/08/02 03:17:29 1.105
+++ apr_pools.c 2001/08/02 05:24:42 1.106
@@ -580,8 +580,9 @@
#define POOL_HDR_CLICKS (1 + ((sizeof(struct apr_pool_t) - 1) / CLICK_SZ))
#define POOL_HDR_BYTES (POOL_HDR_CLICKS * CLICK_SZ)
-APR_DECLARE(apr_pool_t *) apr_pool_sub_make(apr_pool_t *p,
- apr_abortfunc_t abortfunc)
+APR_DECLARE(void) apr_pool_sub_make(apr_pool_t **p,
+ apr_pool_t *parent,
+ apr_abortfunc_t abortfunc)
{
union block_hdr *blok;
apr_pool_t *new_pool;
@@ -604,13 +605,13 @@
new_pool->free_first_avail = blok->h.first_avail;
new_pool->first = new_pool->last = blok;
- if (p) {
- new_pool->parent = p;
- new_pool->sub_next = p->sub_pools;
+ if (parent) {
+ new_pool->parent = parent;
+ new_pool->sub_next = parent->sub_pools;
if (new_pool->sub_next) {
new_pool->sub_next->sub_prev = new_pool;
}
- p->sub_pools = new_pool;
+ parent->sub_pools = new_pool;
}
#if APR_HAS_THREADS
@@ -619,7 +620,7 @@
}
#endif
- return new_pool;
+ *p = new_pool;
}
#ifdef APR_POOL_DEBUG
@@ -653,23 +654,21 @@
#endif
/* ### why do we have this, in addition to apr_pool_sub_make? */
-APR_DECLARE(apr_status_t) apr_pool_create(apr_pool_t **newcont,
+APR_DECLARE(apr_status_t) apr_pool_create(apr_pool_t **newpool,
apr_pool_t *parent_pool)
{
- apr_pool_t *newpool;
apr_abortfunc_t abortfunc;
abortfunc = parent_pool ? parent_pool->apr_abort : NULL;
- newpool = apr_pool_sub_make(parent_pool, abortfunc);
- if (newpool == NULL) {
+ apr_pool_sub_make(newpool, parent_pool, abortfunc);
+ if (*newpool == NULL) {
return APR_ENOPOOL;
}
- newpool->prog_data = NULL;
- newpool->apr_abort = abortfunc;
+ (*newpool)->prog_data = NULL;
+ (*newpool)->apr_abort = abortfunc;
- *newcont = newpool;
return APR_SUCCESS;
}
@@ -837,7 +836,7 @@
return status;
}
#endif
- permanent_pool = apr_pool_sub_make(globalp, NULL);
+ apr_pool_sub_make(&permanent_pool, globalp, NULL);
#ifdef ALLOC_STATS
atexit(dump_stats);
1.3 +6 -7 apr/memory/unix/apr_sms_pools.c
Index: apr_sms_pools.c
===================================================================
RCS file: /home/cvs/apr/memory/unix/apr_sms_pools.c,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- apr_sms_pools.c 2001/07/12 16:52:14 1.2
+++ apr_sms_pools.c 2001/08/02 05:24:42 1.3
@@ -77,17 +77,16 @@
0x2000, 0, 0x80000);
}
-APR_DECLARE(apr_pool_t *) apr_pool_sub_make(apr_pool_t * p,
- apr_abortfunc_t abort)
+APR_DECLARE(void) apr_pool_sub_make(apr_pool_t **p,
+ apr_pool_t *pparent,
+ apr_abortfunc_t abort)
{
- apr_pool_t *np;
-
- if (apr_sms_trivial_create(&np, p) != APR_SUCCESS)
+ if (apr_sms_trivial_create(p, pparent) != APR_SUCCESS)
return NULL;
- apr_sms_set_abort(abort, np);
+ apr_sms_set_abort(abort, *p);
- return np;
+ return p;
}
APR_DECLARE(void) apr_pool_cleanup_register(apr_pool_t *pool,