From ff62cad6dd36a4c34df4c2c5579d048e107f8e8f Mon Sep 17 00:00:00 2001 From: Pauli Date: Sat, 1 Jun 2019 17:55:33 +1000 Subject: Add sparse array of const pointer type Reviewed-by: Tomas Mraz (Merged from https://github.com/openssl/openssl/pull/8840) --- crypto/include/internal/sparse_array.h | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) (limited to 'crypto/include') diff --git a/crypto/include/internal/sparse_array.h b/crypto/include/internal/sparse_array.h index ec3fb2f97a..037ccfeee9 100644 --- a/crypto/include/internal/sparse_array.h +++ b/crypto/include/internal/sparse_array.h @@ -19,7 +19,7 @@ extern "C" { # define SPARSE_ARRAY_OF(type) struct sparse_array_st_ ## type -# define DEFINE_SPARSE_ARRAY_OF(type) \ +# define DEFINE_SPARSE_ARRAY_OF_INTERNAL(type, ctype) \ SPARSE_ARRAY_OF(type); \ static ossl_unused ossl_inline SPARSE_ARRAY_OF(type) * \ ossl_sa_##type##_new(void) \ @@ -53,18 +53,23 @@ extern "C" { void *))leaf, \ arg); \ } \ - static ossl_unused ossl_inline type *ossl_sa_##type##_get(const SPARSE_ARRAY_OF(type) *sa, \ + static ossl_unused ossl_inline ctype *ossl_sa_##type##_get(const SPARSE_ARRAY_OF(type) *sa, \ ossl_uintmax_t n) \ { \ return (type *)OPENSSL_SA_get((OPENSSL_SA *)sa, n); \ } \ static ossl_unused ossl_inline int ossl_sa_##type##_set(SPARSE_ARRAY_OF(type) *sa, \ - ossl_uintmax_t n, type *val) \ + ossl_uintmax_t n, ctype *val) \ { \ return OPENSSL_SA_set((OPENSSL_SA *)sa, n, (void *)val); \ } \ SPARSE_ARRAY_OF(type) +# define DEFINE_SPARSE_ARRAY_OF(type) \ + DEFINE_SPARSE_ARRAY_OF_INTERNAL(type, type) +# define DEFINE_SPARSE_ARRAY_OF_CONST(type) \ + DEFINE_SPARSE_ARRAY_OF_INTERNAL(type, const type) + typedef struct sparse_array_st OPENSSL_SA; OPENSSL_SA *OPENSSL_SA_new(void); void OPENSSL_SA_free(OPENSSL_SA *sa); -- cgit v1.2.3