You are viewing a plain text version of this content. The canonical link for it is here.
Posted to cvs@httpd.apache.org by rb...@locus.apache.org on 2000/07/05 22:22:33 UTC
cvs commit: apache-2.0/src/lib/apr/include apr_pools.h apr_tables.h
rbb 00/07/05 13:22:30
Modified: src/lib/apr/include apr_pools.h apr_tables.h
Log:
Clean up apr_pools.h. This basically moves a lot of comments from the
top of apr_pools.h to other headers where they belong. Now, comments
for a function are near the function they document. Also, remove some
duplicated definitions.
Revision Changes Path
1.21 +31 -55 apache-2.0/src/lib/apr/include/apr_pools.h
Index: apr_pools.h
===================================================================
RCS file: /home/cvs/apache-2.0/src/lib/apr/include/apr_pools.h,v
retrieving revision 1.20
retrieving revision 1.21
diff -u -r1.20 -r1.21
--- apr_pools.h 2000/07/05 19:17:52 1.20
+++ apr_pools.h 2000/07/05 20:22:24 1.21
@@ -104,11 +104,8 @@
struct process_chain *next;
};
-ap_status_t ap_init_alloc(void); /* Set up everything */
-void ap_term_alloc(void); /* Tear down everything */
-
-/* used to guarantee to the ap_pool_t debugging code that the sub ap_pool_t will not be
- * destroyed before the parent pool
+/* used to guarantee to the ap_pool_t debugging code that the sub ap_pool_t
+ * will not be destroyed before the parent pool
*/
#ifndef POOL_DEBUG
APR_EXPORT(ap_pool_t *) ap_find_pool(const void *ts);
@@ -117,56 +114,6 @@
APR_EXPORT(ap_pool_t *) ap_find_pool(const void *ts, int (apr_abort)(int retcode));
#endif /* POOL_DEBUG */
-
-/* Clearing out EVERYTHING in an pool... destroys any sub-pools */
-
-/* Preparing for exec() --- close files, etc., but *don't* flush I/O
- * buffers, *don't* wait for subprocesses, and *don't* free any memory.
- */
-
-/* array and alist management... keeping lists of things.
- * Common enough to want common support code ...
- */
-
-/* ap_array_pstrcat generates a new string from the ap_pool_t containing
- * the concatenated sequence of substrings referenced as elements within
- * the array. The string will be empty if all substrings are empty or null,
- * or if there are no elements in the array.
- * If sep is non-NUL, it will be inserted between elements as a separator.
- */
-
-/* copy_array copies the *entire* array. copy_array_hdr just copies
- * the header, and arranges for the elements to be copied if (and only
- * if) the code subsequently does a push or arraycat.
- */
-
-
-
-/* Conceptually, ap_overlap_tables does this:
-
- ap_array_header_t *barr = ap_table_elts(b);
- ap_table_entry_t *belt = (ap_table_entry_t *)barr->elts;
- int i;
-
- for (i = 0; i < barr->nelts; ++i) {
- if (flags & ap_OVERLAP_TABLES_MERGE) {
- ap_table_mergen(a, belt[i].key, belt[i].val);
- }
- else {
- ap_table_setn(a, belt[i].key, belt[i].val);
- }
- }
-
- Except that it is more efficient (less space and cpu-time) especially
- when b has many elements.
-
- Notice the assumptions on the keys and values in b -- they must be
- in an ancestor of a's pool. In practice b and a are usually from
- the same pool.
-*/
-#define ap_OVERLAP_TABLES_SET (0)
-#define ap_OVERLAP_TABLES_MERGE (1)
-
#ifdef ULTRIX_BRAIN_DEATH
#define ap_fdopen(d,m) fdopen((d), (char *)(m))
#else
@@ -186,8 +133,34 @@
/*
* APR memory structure manipulators (pools, tables, and arrays).
*/
+
/*
+=head1 ap_status_t ap_init_alloc(void)
+
+B<Setup all of the internal structures required to use pools>
+
+B<NOTE>: Programs do B<NOT> need to call this directly. APR will call this
+ automatically from ap_initialize.
+=cut
+ */
+ap_status_t ap_init_alloc(void); /* Set up everything */
+
+/*
+
+=head1 void ap_term_alloc(void)
+
+B<Tear down all of the internal structures required to use pools>
+
+B<NOTE>: Programs do B<NOT> need to call this directly. APR will call this
+ automatically from ap_terminate.
+
+=cut
+ */
+void ap_term_alloc(void); /* Tear down everything */
+
+/*
+
=head1 ap_pool_t *ap_make_sub_pool(ap_pool_t *p, int (*apr_abort)(int retcode))
B<make a sub pool from the current pool>
@@ -428,6 +401,9 @@
B<Run all of the child_cleanups, so that any unnecessary files are closed because we are about to exec a new program>
=cut
+ */
+/* Preparing for exec() --- close files, etc., but *don't* flush I/O
+ * buffers, *don't* wait for subprocesses, and *don't* free any memory.
*/
APR_EXPORT(void) ap_cleanup_for_exec(void);
APR_EXPORT(ap_status_t) ap_getpass(const char *prompt, char *pwbuf, size_t *bufsize);
1.3 +35 -0 apache-2.0/src/lib/apr/include/apr_tables.h
Index: apr_tables.h
===================================================================
RCS file: /home/cvs/apache-2.0/src/lib/apr/include/apr_tables.h,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- apr_tables.h 2000/06/12 20:45:26 1.2
+++ apr_tables.h 2000/07/05 20:22:25 1.3
@@ -120,6 +120,11 @@
APR_EXPORT(void *) ap_push_array(ap_array_header_t *arr);
APR_EXPORT(void) ap_array_cat(ap_array_header_t *dst,
const ap_array_header_t *src);
+
+/* copy_array copies the *entire* array. copy_array_hdr just copies
+ * the header, and arranges for the elements to be copied if (and only
+ * if) the code subsequently does a push or arraycat.
+ */
APR_EXPORT(ap_array_header_t *) ap_copy_array(struct ap_pool_t *p,
const ap_array_header_t *arr);
APR_EXPORT(ap_array_header_t *)
@@ -129,6 +134,13 @@
ap_append_arrays(struct ap_pool_t *p,
const ap_array_header_t *first,
const ap_array_header_t *second);
+
+/* ap_array_pstrcat generates a new string from the ap_pool_t containing
+ * the concatenated sequence of substrings referenced as elements within
+ * the array. The string will be empty if all substrings are empty or null,
+ * or if there are no elements in the array.
+ * If sep is non-NUL, it will be inserted between elements as a separator.
+ */
APR_EXPORT(char *) ap_array_pstrcat(struct ap_pool_t *p,
const ap_array_header_t *arr,
const char sep);
@@ -158,6 +170,29 @@
APR_EXPORT(void)
ap_table_vdo(int (*comp) (void *, const char *, const char *),
void *rec, const ap_table_t *t, va_list);
+
+/* Conceptually, ap_overlap_tables does this:
+
+ ap_array_header_t *barr = ap_table_elts(b);
+ ap_table_entry_t *belt = (ap_table_entry_t *)barr->elts;
+ int i;
+
+ for (i = 0; i < barr->nelts; ++i) {
+ if (flags & ap_OVERLAP_TABLES_MERGE) {
+ ap_table_mergen(a, belt[i].key, belt[i].val);
+ }
+ else {
+ ap_table_setn(a, belt[i].key, belt[i].val);
+ }
+ }
+
+ Except that it is more efficient (less space and cpu-time) especially
+ when b has many elements.
+
+ Notice the assumptions on the keys and values in b -- they must be
+ in an ancestor of a's pool. In practice b and a are usually from
+ the same pool.
+*/
#define AP_OVERLAP_TABLES_SET (0)
#define AP_OVERLAP_TABLES_MERGE (1)
APR_EXPORT(void) ap_overlap_tables(ap_table_t *a, const ap_table_t *b,