From 9022f35f098ae5ba87efab9dba66723512c786df Mon Sep 17 00:00:00 2001
From: Sean Bright <sean.bright@gmail.com>
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.
  *
-- 
GitLab