From 503570edaa336bf4b5953ecb4f45349f44620f76 Mon Sep 17 00:00:00 2001 From: Mattias Andrée Date: Mon, 4 May 2026 18:53:11 +0200 Subject: Fix usage of va_arg MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Mattias Andrée --- libj2/signed-comparison.h | 10 ++++++++-- libj2/unsigned-comparison.h | 10 ++++++++-- 2 files changed, 16 insertions(+), 4 deletions(-) diff --git a/libj2/signed-comparison.h b/libj2/signed-comparison.h index 1bed2f1..9d8025c 100644 --- a/libj2/signed-comparison.h +++ b/libj2/signed-comparison.h @@ -699,8 +699,11 @@ libj2_max_j2i_return(const struct libj2_j2i *a, ... /*, NULL */) inline void libj2_vmax_j2i_to_j2i(const struct libj2_j2i *a, va_list args) { + const struct libj2_j2i *b; struct libj2_j2i *res; - a = libj2_vmax_j2i_return(a, args); + while ((b = va_arg(args, const struct libj2_j2i *))) + if (libj2_j2i_gt_j2i(b, a)) + a = b; res = va_arg(args, struct libj2_j2i *); *res = *a; } @@ -829,8 +832,11 @@ libj2_min_j2i_return(const struct libj2_j2i *a, ... /*, NULL */) inline void libj2_vmin_j2i_to_j2i(const struct libj2_j2i *a, va_list args) { + const struct libj2_j2i *b; struct libj2_j2i *res; - a = libj2_vmin_j2i_return(a, args); + while ((b = va_arg(args, const struct libj2_j2i *))) + if (libj2_j2i_lt_j2i(b, a)) + a = b; res = va_arg(args, struct libj2_j2i *); *res = *a; } diff --git a/libj2/unsigned-comparison.h b/libj2/unsigned-comparison.h index c13397a..4245a61 100644 --- a/libj2/unsigned-comparison.h +++ b/libj2/unsigned-comparison.h @@ -696,8 +696,11 @@ libj2_max_j2u_return(const struct libj2_j2u *a, ... /*, NULL */) inline void libj2_vmax_j2u_to_j2u(const struct libj2_j2u *a, va_list args) { + const struct libj2_j2u *b; struct libj2_j2u *res; - a = libj2_vmax_j2u_return(a, args); + while ((b = va_arg(args, const struct libj2_j2u *))) + if (libj2_j2u_gt_j2u(b, a)) + a = b; res = va_arg(args, struct libj2_j2u *); *res = *a; } @@ -826,8 +829,11 @@ libj2_min_j2u_return(const struct libj2_j2u *a, ... /*, NULL */) inline void libj2_vmin_j2u_to_j2u(const struct libj2_j2u *a, va_list args) { + const struct libj2_j2u *b; struct libj2_j2u *res; - a = libj2_vmin_j2u_return(a, args); + while ((b = va_arg(args, const struct libj2_j2u *))) + if (libj2_j2u_lt_j2u(b, a)) + a = b; res = va_arg(args, struct libj2_j2u *); *res = *a; } -- cgit v1.2.3-70-g09d2