shithub: opus

Download patch

ref: 32d4d874accd322f7e237b734678542fea88393b
parent: 33a89b7ea8db4d9a6fcc802aa85264e13a4ebbaf
author: Jean-Marc Valin <jmvalin@jmvalin.ca>
date: Sat Mar 2 21:45:39 EST 2024

Basic void pointer check

Only manage to warn on non-pointers

--- a/include/opus_defines.h
+++ b/include/opus_defines.h
@@ -187,11 +187,13 @@
 #define __opus_check_uint_ptr(ptr) (ptr)
 #define __opus_check_uint8_ptr(ptr) (ptr)
 #define __opus_check_val16_ptr(ptr) (ptr)
+#define __opus_check_void_ptr(ptr) (ptr)
 #else
 #define __opus_check_int_ptr(ptr) ((ptr) + ((ptr) - (opus_int32*)(ptr)))
 #define __opus_check_uint_ptr(ptr) ((ptr) + ((ptr) - (opus_uint32*)(ptr)))
 #define __opus_check_uint8_ptr(ptr) ((ptr) + ((ptr) - (opus_uint8*)(ptr)))
 #define __opus_check_val16_ptr(ptr) ((ptr) + ((ptr) - (opus_val16*)(ptr)))
+#define __opus_check_void_ptr(x) ((void)((void *)0 == (x)), (x))
 #endif
 /** @endcond */
 
@@ -644,7 +646,7 @@
 
 /** Provide external DNN weights from binary object (only when explicitly built without the weights)
   * @hideinitializer */
-#define OPUS_SET_DNN_BLOB(data, len) OPUS_SET_DNN_BLOB_REQUEST, (data), __opus_check_int(len)
+#define OPUS_SET_DNN_BLOB(data, len) OPUS_SET_DNN_BLOB_REQUEST, __opus_check_void_ptr(data), __opus_check_int(len)
 
 
 /**@}*/
--