> -----Mensaje original----- > De: [EMAIL PROTECTED] [SMTP:[EMAIL PROTECTED] > Enviado el: Lunes, 04 de Septiembre de 2000 00:42 > Para: [EMAIL PROTECTED] > Asunto: cvs commit: apache-2.0/src/include ap_buckets.h > > fanf 00/09/03 22:42:20 > > Modified: src/ap ap_buckets.c ap_buckets_heap.c ap_buckets_pipe.c > src/include ap_buckets.h > Log: > avoid a copy in the pipe bucket read code > and make the length return argument in ap_bucket_create_heap optional > (which is only really true when not copying) > > Revision Changes Path > 1.12 +2 -2 apache-2.0/src/ap/ap_buckets.c > > Index: ap_buckets.c > =================================================================== > RCS file: /home/cvs/apache-2.0/src/ap/ap_buckets.c,v > retrieving revision 1.11 > retrieving revision 1.12 > diff -u -u -r1.11 -r1.12 > --- ap_buckets.c 2000/08/20 03:33:08 1.11 > +++ ap_buckets.c 2000/09/04 05:42:19 1.12 > @@ -208,11 +208,11 @@ > */ > char buf[4096]; > ap_bucket *r; > - int res, i; > + int res; > > res = apr_vsnprintf(buf, 4096, fmt, va); > > - r = ap_bucket_create_heap(buf, strlen(buf), 1, &i); > + r = ap_bucket_create_heap(buf, strlen(buf), 1, NULL); > ap_brigade_append_buckets(b, r); > > return res; > > > > 1.10 +2 -1 apache-2.0/src/ap/ap_buckets_heap.c > > Index: ap_buckets_heap.c > =================================================================== > RCS file: /home/cvs/apache-2.0/src/ap/ap_buckets_heap.c,v > retrieving revision 1.9 > retrieving revision 1.10 > diff -u -u -r1.9 -r1.10 > --- ap_buckets_heap.c 2000/08/19 16:54:45 1.9 > +++ ap_buckets_heap.c 2000/09/04 05:42:20 1.10 > @@ -133,7 +133,8 @@ > b->read = heap_read; > b->setaside = NULL; > > - *w = length; > + if (w) > + *w = length; > > return b; > } > > > > 1.5 +11 -14 apache-2.0/src/ap/ap_buckets_pipe.c > > Index: ap_buckets_pipe.c > =================================================================== > RCS file: /home/cvs/apache-2.0/src/ap/ap_buckets_pipe.c,v > retrieving revision 1.4 > retrieving revision 1.5 > diff -u -u -r1.4 -r1.5 > --- ap_buckets_pipe.c 2000/08/31 16:54:12 1.4 > +++ ap_buckets_pipe.c 2000/09/04 05:42:20 1.5 > @@ -67,31 +67,28 @@ > } > > /* Ignore the block arg for now. We can fix that tomorrow. */ > -static apr_status_t pipe_read(ap_bucket *b, const char **str, > +static apr_status_t pipe_read(ap_bucket *b, const char **str, > apr_ssize_t *len, int block) > { > ap_bucket_pipe *bd = b->data; > ap_bucket *a; > - apr_size_t l; > - apr_ssize_t toss; > - char buf[IOBUFSIZE]; > + char *buf; > apr_status_t rv; > > + /* > + * XXX: We need to obey the block flag > + */ > + buf = malloc(IOBUFSIZE); > + *str = buf; > *len = IOBUFSIZE; > if ((rv = apr_read(bd->thepipe, buf, len)) != APR_SUCCESS) { > + free(buf); > return rv; > } > - if (*len > 0) { > - l = *len; > + if (len > 0) { > a = ap_bucket_create_pipe(bd->thepipe); > - > - /* XXX ap_bucket_make_heap() can decide not to copy all our > data; > - * either handle it here or ensure that IOBUFSIZE < > - * DEFAULT_BUCKET_SIZE; > - */ > - b = ap_bucket_make_heap(b, buf, l, 1, &toss); > - b->read(b, str, len, block); /* set str to new location of data > */ > - > + b = ap_bucket_make_heap(b, buf, *len, 0, NULL); > + > if (b->next) { > b->next->prev = a; > } > > > > 1.18 +2 -1 apache-2.0/src/include/ap_buckets.h > > Index: ap_buckets.h > =================================================================== > RCS file: /home/cvs/apache-2.0/src/include/ap_buckets.h,v > retrieving revision 1.17 > retrieving revision 1.18 > diff -u -u -r1.17 -r1.18 > --- ap_buckets.h 2000/08/29 17:13:48 1.17 > +++ ap_buckets.h 2000/09/04 05:42:20 1.18 > @@ -540,7 +540,8 @@ > * @param buf The buffer to insert into the bucket > * @param nbyte The size of the buffer to insert. > * @param copy Whether to copy the data into newly-allocated memory or > not > - * @param w The number of bytes actually copied into the bucket > + * @param w The number of bytes actually copied into the bucket. > + * If copy is zero then this return value can be ignored by > passing a NULL pointer. > * @return The new bucket, or NULL if allocation failed > * @deffunc ap_bucket *ap_bucket_create_heap(const char *buf, > apr_size_t nbyte, apr_ssize_t *w) > */ > > >
RE: cvs commit: apache-2.0/src/include ap_buckets.h
Buschiazzo Saavedra, Leonardo (Petrox) 5 Sep 2000 12:37:30 -0000
- cvs commit: apache-2.0/src/include ... stoddard
- cvs commit: apache-2.0/src/inc... rbb
- cvs commit: apache-2.0/src/inc... rbb
- cvs commit: apache-2.0/src/inc... trawick
- cvs commit: apache-2.0/src/inc... fanf
- cvs commit: apache-2.0/src/inc... Buschiazzo Saavedra, Leonardo (Petrox)
- cvs commit: apache-2.0/src/inc... fanf
- cvs commit: apache-2.0/src/inc... fanf
- cvs commit: apache-2.0/src/inc... ake
- cvs commit: apache-2.0/src/inc... fanf
- cvs commit: apache-2.0/src/inc... fanf
- cvs commit: apache-2.0/src/inc... rbb
- cvs commit: apache-2.0/src/inc... trawick
- cvs commit: apache-2.0/src/inc... rbb
- cvs commit: apache-2.0/src/inc... rbb
- cvs commit: apache-2.0/src/inc... wrowe