From f593b5792031b3797cdcdfd3fbb33ac4de8c9a5d Mon Sep 17 00:00:00 2001 From: Dave Barach Date: Fri, 24 Apr 2020 16:07:37 -0400 Subject: [PATCH] vppinfra: finish deprecating qsort.c Minor change to vec_sort_with_function(...): don't depend on the qsort implementation to deal with null, zero-long, or 1-long vectors Type: fix Signed-off-by: Dave Barach Change-Id: I7bd7b0421673d2a025363089562aa7c6266fba66 --- {src => extras/deprecated}/vppinfra/qsort.c | 0 src/vppinfra/vec.h | 10 +++++++--- 2 files changed, 7 insertions(+), 3 deletions(-) rename {src => extras/deprecated}/vppinfra/qsort.c (100%) diff --git a/src/vppinfra/qsort.c b/extras/deprecated/vppinfra/qsort.c similarity index 100% rename from src/vppinfra/qsort.c rename to extras/deprecated/vppinfra/qsort.c diff --git a/src/vppinfra/vec.h b/src/vppinfra/vec.h index 9054eaa5e57..e9836107799 100644 --- a/src/vppinfra/vec.h +++ b/src/vppinfra/vec.h @@ -1040,12 +1040,16 @@ do { \ /** \brief Sort a vector using the supplied element comparison function + Does not depend on the underlying implementation to deal correctly + with null, zero-long, or 1-long vectors + @param vec vector to sort @param f comparison function */ -#define vec_sort_with_function(vec,f) \ -do { \ - qsort (vec, vec_len (vec), sizeof (vec[0]), (void *) (f)); \ +#define vec_sort_with_function(vec,f) \ +do { \ + if (vec_len (vec) > 1) \ + qsort (vec, vec_len (vec), sizeof (vec[0]), (void *) (f)); \ } while (0) /** \brief Make a vector containing a NULL terminated c-string. -- 2.16.6