]> git.ipfire.org Git - thirdparty/asterisk.git/commitdiff
vector.h: Add AST_VECTOR_SORT()
authorSean Bright <sean.bright@gmail.com>
Mon, 20 Jul 2020 18:17:45 +0000 (14:17 -0400)
committerGeorge Joseph <gjoseph@digium.com>
Fri, 24 Jul 2020 16:28:35 +0000 (11:28 -0500)
Allows a vector to be sorted in-place, rather than only during
insertion.

Change-Id: I22cba9ddf556a7e44dacc53c4431bd81dd2fa780

include/asterisk/vector.h

index 0e33590560a3c1e72b74f76ed7e6ef3d8b179283..3f557f02c75ee971e3dd8a3e750be50e662393c4 100644 (file)
@@ -357,6 +357,16 @@ AST_VECTOR(ast_vector_string, char *);
        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.
  *