]> git.ipfire.org Git - thirdparty/haproxy.git/commitdiff
MINOR: htx: add an unchecked version of htx_get_head_blk()
authorWilly Tarreau <w@1wt.eu>
Mon, 30 May 2022 14:25:16 +0000 (16:25 +0200)
committerWilly Tarreau <w@1wt.eu>
Mon, 30 May 2022 14:25:16 +0000 (16:25 +0200)
htx_get_head_blk() is used at plenty of places, many of which are known
to be safe, but the function checks for the presence of a first block
and returns NULL if it doesn't exist. While it's properly used, it makes
compilers complain at -Os on stream.c and mux_fcgi.c because they probably
don't propagate variables far enough to see that there's no risk.

Let's add an unchecked version for these use cases.

include/haproxy/htx.h

index c74d0db2684bc1307585ce572f9d9f9a3faeae99..0fd1a1b9723d7bfcac318fabeb63a97277eb3937 100644 (file)
@@ -189,6 +189,16 @@ static inline struct htx_blk *htx_get_head_blk(const struct htx *htx)
        return ((head == -1) ? NULL : htx_get_blk(htx, head));
 }
 
+/* same as above but unchecked, may only be used when certain that a block
+ * exists.
+ */
+static inline struct htx_blk *__htx_get_head_blk(const struct htx *htx)
+{
+       int32_t head = htx_get_head(htx);
+
+       return htx_get_blk(htx, head);
+}
+
 /* Returns the type of the oldest HTX block (head) if the HTX message is not
  * empty. Otherwise it returns HTX_BLK_UNUSED.
  */