From b5bb4a7a0d91958a6d2df81f18c8b285acdaf259 Mon Sep 17 00:00:00 2001 From: Sean Bright Date: Mon, 20 Jul 2020 14:17:45 -0400 Subject: [PATCH] vector.h: Add AST_VECTOR_SORT() Allows a vector to be sorted in-place, rather than only during insertion. Change-Id: I22cba9ddf556a7e44dacc53c4431bd81dd2fa780 --- include/asterisk/vector.h | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/include/asterisk/vector.h b/include/asterisk/vector.h index 291cdf4251..8f5cf8c8b0 100644 --- a/include/asterisk/vector.h +++ b/include/asterisk/vector.h @@ -387,6 +387,16 @@ int ast_vector_string_split(struct ast_vector_string *dest, res; \ }) +/*! + * \brief Sort a vector in-place + * + * \param vec Vector to sort + * \param cmp A memcmp compatible compare function + */ +#define AST_VECTOR_SORT(vec, cmp) ({ \ + qsort((vec)->elems, (vec)->current, sizeof(typeof((vec)->elems[0])), cmp); \ +}) + /*! * \brief Remove an element from a vector by index. *