Refactoring performed with the following Coccinelle patch:

    @@
    struct ist i;
    expression e;
    @@

    - i.ptr += e;
    - i.len -= e;
    + i = istadv(i, e);
---
 src/cache.c     | 3 +--
 src/flt_trace.c | 3 +--
 src/htx.c       | 3 +--
 src/mux_h2.c    | 6 ++----
 4 files changed, 5 insertions(+), 10 deletions(-)

diff --git a/src/cache.c b/src/cache.c
index acd68722b..12609e1ac 100644
--- a/src/cache.c
+++ b/src/cache.c
@@ -620,8 +620,7 @@ cache_store_http_payload(struct stream *s, struct filter 
*filter, struct http_ms
 
                        case HTX_BLK_DATA:
                                v = htx_get_blk_value(htx, blk);
-                               v.ptr += offset;
-                               v.len -= offset;
+                               v = istadv(v, offset);
                                if (v.len > len)
                                        v.len = len;
 
diff --git a/src/flt_trace.c b/src/flt_trace.c
index 206beda59..424cd0014 100644
--- a/src/flt_trace.c
+++ b/src/flt_trace.c
@@ -143,8 +143,7 @@ trace_htx_hexdump(struct htx *htx, unsigned int offset, 
unsigned int len)
                }
 
                v = htx_get_blk_value(htx, blk);
-               v.ptr += offset;
-               v.len -= offset;
+               v = istadv(v, offset);
                offset = 0;
 
                if (v.len > len)
diff --git a/src/htx.c b/src/htx.c
index 6a4fe2d35..774727b53 100644
--- a/src/htx.c
+++ b/src/htx.c
@@ -543,8 +543,7 @@ struct htx_blk *htx_add_data_atonce(struct htx *htx, struct 
ist data)
                blk = tailblk;
                goto end;
        }
-       data.ptr += len;
-       data.len -= len;
+       data = istadv(data, len);
 
   add_new_block:
        /* FIXME: check data.len (< 256MB) */
diff --git a/src/mux_h2.c b/src/mux_h2.c
index 3810943c5..46940b404 100644
--- a/src/mux_h2.c
+++ b/src/mux_h2.c
@@ -5361,16 +5361,14 @@ static size_t h2s_bck_make_req_headers(struct h2s *h2s, 
struct htx *htx)
                        if (len + 2 < uri.len && uri.ptr[len + 1] == '/' && 
uri.ptr[len + 2] == '/') {
                                /* make the uri start at the authority now */
                                scheme = ist2(uri.ptr, len);
-                               uri.ptr += len + 3;
-                               uri.len -= len + 3;
+                               uri = istadv(uri, len + 3);
 
                                /* find the auth part of the URI */
                                auth = ist2(uri.ptr, 0);
                                while (auth.len < uri.len && auth.ptr[auth.len] 
!= '/')
                                        auth.len++;
 
-                               uri.ptr += auth.len;
-                               uri.len -= auth.len;
+                               uri = istadv(uri, auth.len);
                        }
                }
 
-- 
2.30.1


Reply via email to