On Fri, Feb 08, 2019 at 05:02:22PM +0100, Florian Westphal wrote:
> Temporary kludge to remove all the expr->ops->type == ... patterns.
> Followup patch will remove expr->ops, and make expr_ops() lookup
> the correct expr_ops struct instead to reduce struct expr size.
>
> Signed-off-by: Florian Westphal <[email protected]>
> ---
> include/expression.h | 3 +-
> src/datatype.c | 2 +-
> src/evaluate.c | 72 +++++++++++++++++++-------------------
> src/expression.c | 25 +++++++-------
> src/exthdr.c | 2 +-
> src/json.c | 2 +-
> src/mergesort.c | 2 +-
> src/monitor.c | 2 +-
> src/netlink.c | 10 +++---
> src/netlink_delinearize.c | 73 +++++++++++++++++++--------------------
> src/netlink_linearize.c | 26 +++++++-------
> src/parser_bison.y | 10 +++---
> src/parser_json.c | 12 +++----
> src/payload.c | 10 +++---
> src/rule.c | 6 ++--
> src/segtree.c | 18 +++++-----
> src/statement.c | 8 ++---
> src/tcpopt.c | 2 +-
> 18 files changed, 143 insertions(+), 142 deletions(-)
>
> diff --git a/include/expression.h b/include/expression.h
> index 8a4cf5b10b8c..2450bc90ec99 100644
> --- a/include/expression.h
> +++ b/include/expression.h
> @@ -220,6 +220,7 @@ struct expr {
>
> const struct datatype *dtype;
> enum byteorder byteorder;
> + enum expr_types etype:8;
Probably use just type:8; ?
expr->etype
sounds a bit redundant, but not a deal breaker :-)