[vlc-commits] vlc_common: add vlc_align helper

Marvin Scholz git at videolan.org
Tue Mar 24 19:20:33 CET 2020


vlc | branch: master | Marvin Scholz <epirat07 at gmail.com> | Fri Jan 10 19:29:48 2020 +0100| [dff305c34b6f516614b2081587ba3669055c1f4e] | committer: Marvin Scholz

vlc_common: add vlc_align helper

> http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=dff305c34b6f516614b2081587ba3669055c1f4e
---

 include/vlc_common.h | 17 +++++++++++++++++
 1 file changed, 17 insertions(+)

diff --git a/include/vlc_common.h b/include/vlc_common.h
index d5e9f1eb71..cb4d49a0e2 100644
--- a/include/vlc_common.h
+++ b/include/vlc_common.h
@@ -549,6 +549,23 @@ typedef int ( * vlc_list_callback_t ) ( vlc_object_t *,      /* variable's objec
 /* clip v in [min, max] */
 #define VLC_CLIP(v, min, max)    __MIN(__MAX((v), (min)), (max))
 
+/**
+ * Make integer v a multiple of align
+ *
+ * \note align must be a power of 2
+ */
+VLC_USED
+static inline size_t vlc_align(size_t v, size_t align)
+{
+    return (v + (align - 1)) & ~(align - 1);
+}
+
+#if defined(__clang__) && __has_attribute(diagnose_if)
+static inline size_t vlc_align(size_t v, size_t align)
+    __attribute__((diagnose_if(((align & (align - 1)) || (align == 0)),
+        "align must be power of 2", "error")));
+#endif
+
 /** Greatest common divisor */
 VLC_USED
 static inline int64_t GCD ( int64_t a, int64_t b )



More information about the vlc-commits mailing list