Author: gstein
Date: Wed Nov 11 23:12:08 2015
New Revision: 1713948
URL: http://svn.apache.org/viewvc?rev=1713948&view=rev
Log:
Leave some notes for future work/improvements.
* buckets/iovec_buckets.c:
(serf_bucket_iovec_create): note: skip a vec if it is zero length
(serf_iovec_read_iovec): note: skip producing zero len vecs
(serf_iovec_peek): note: avoid returning zero len data
Modified:
serf/trunk/buckets/iovec_buckets.c
Modified: serf/trunk/buckets/iovec_buckets.c
URL:
http://svn.apache.org/viewvc/serf/trunk/buckets/iovec_buckets.c?rev=1713948&r1=1713947&r2=1713948&view=diff
==============================================================================
--- serf/trunk/buckets/iovec_buckets.c (original)
+++ serf/trunk/buckets/iovec_buckets.c Wed Nov 11 23:12:08 2015
@@ -53,6 +53,7 @@ serf_bucket_t *serf_bucket_iovec_create(
/* copy all buffers to our iovec. */
for (i = 0; i < len; i++) {
+ /* ### skip if iov_len == 0. (and adjust ->vecs_len) */
ctx->vecs[i].iov_base = vecs[i].iov_base;
ctx->vecs[i].iov_len = vecs[i].iov_len;
}
@@ -80,6 +81,7 @@ static apr_status_t serf_iovec_read_iove
if (*vecs_used >= vecs_size)
break;
+ /* ### skip returning a vec, if its iov_len will be 0. */
vecs[*vecs_used].iov_base = (char*)vec.iov_base + ctx->offset;
remaining = vec.iov_len - ctx->offset;
@@ -139,6 +141,7 @@ static apr_status_t serf_iovec_peek(serf
/* Return the first unread buffer, don't bother combining all
remaining data. */
+ /* ### skip current_vec if iov_len will be 0. */
*data = (const char *)ctx->vecs[ctx->current_vec].iov_base + ctx->offset;
*len = ctx->vecs[ctx->current_vec].iov_len - ctx->offset;