]> git.ipfire.org Git - thirdparty/haproxy.git/commitdiff
BUILD: ot: use a cebtree instead of a list for variable names
authorMiroslav Zagorac <mzagorac@haproxy.com>
Mon, 28 Oct 2024 14:31:55 +0000 (15:31 +0100)
committerWilliam Lallemand <wlallemand@haproxy.com>
Tue, 12 Nov 2024 10:07:13 +0000 (11:07 +0100)
In order for the function flt_ot_vars_scope_dump() to work, it is
necessary to take into account the changes made by the commits 47ec7c681
("OPTIM: vars: use a cebtree instead of a list for variable names") and
5d350d1e5 ("OPTIM: vars: use multiple name heads in the vars struct").

The function is only used if the OT_DEBUG=1 option is set when compiling
HAProxy.

addons/ot/src/vars.c

index e99bab16c7c93b457e1b121c654c5d70456a6290..5030bc4121b8547159601db4c30e02d7e3fb0cf2 100644 (file)
  */
 static void flt_ot_vars_scope_dump(struct vars *vars, const char *scope)
 {
-       const struct var *var;
+       int i;
 
        if (vars == NULL)
                return;
 
        vars_rdlock(vars);
-       list_for_each_entry(var, &(vars->head), l)
-               FLT_OT_DBG(2, "'%s.%016" PRIx64 "' -> '%.*s'", scope, var->name_hash, (int)b_data(&(var->data.u.str)), b_orig(&(var->data.u.str)));
+       for (i = 0; i < VAR_NAME_ROOTS; i++) {
+               struct ceb_node *node = cebu64_first(&(vars->name_root[i]));
+
+               for ( ; node != NULL; node = cebu64_next(&(vars->name_root[i]), node)) {
+                       struct var *var = container_of(node, struct var, node);
+
+                       FLT_OT_DBG(2, "'%s.%016" PRIx64 "' -> '%.*s'", scope, var->name_hash, (int)b_data(&(var->data.u.str)), b_orig(&(var->data.u.str)));
+               }
+       }
        vars_rdunlock(vars);
 }