diff options
author | Dr. Stephen Henson <steve@openssl.org> | 1999-05-19 12:45:16 +0000 |
---|---|---|
committer | Dr. Stephen Henson <steve@openssl.org> | 1999-05-19 12:45:16 +0000 |
commit | e84240d42289a131def633579cfdabfb6ebf557d (patch) | |
tree | ec455fe5f4865fc28309c3e5f5762eec155b4f7d /crypto/stack | |
parent | 054810ec0e02d7d15bf96945e2ea46d2e4147aa5 (diff) | |
download | openssl-e84240d42289a131def633579cfdabfb6ebf557d.tar.gz |
New functions sk_set, sk_value and sk_num to replace existing macros: this is
to minimise the effects on existing code.
Diffstat (limited to 'crypto/stack')
-rw-r--r-- | crypto/stack/safestack.h | 4 | ||||
-rw-r--r-- | crypto/stack/stack.c | 17 | ||||
-rw-r--r-- | crypto/stack/stack.h | 10 |
3 files changed, 27 insertions, 4 deletions
diff --git a/crypto/stack/safestack.h b/crypto/stack/safestack.h index 3c9fdba658..d0823c0d0a 100644 --- a/crypto/stack/safestack.h +++ b/crypto/stack/safestack.h @@ -92,11 +92,11 @@ STACK_OF(type) *sk_##type##_new_null() \ void sk_##type##_free(STACK_OF(type) *sk) \ { sk_free((STACK *)sk); } \ int sk_##type##_num(const STACK_OF(type) *sk) \ - { return sk_num((const STACK *)sk); } \ + { return M_sk_num((const STACK *)sk); } \ type *sk_##type##_value(const STACK_OF(type) *sk,int n) \ { return (type *)sk_value((STACK *)sk,n); } \ type *sk_##type##_set(STACK_OF(type) *sk,int n,type *v) \ - { return (type *)(sk_value((STACK *)sk,n)=(char *)v); } \ + { return (type *)(sk_set((STACK *)sk,n,(char *)v)); } \ void sk_##type##_zero(STACK_OF(type) *sk) \ { sk_zero((STACK *)sk); } \ int sk_##type##_push(STACK_OF(type) *sk,type *v) \ diff --git a/crypto/stack/stack.c b/crypto/stack/stack.c index 5a15a2456d..f1165b340c 100644 --- a/crypto/stack/stack.c +++ b/crypto/stack/stack.c @@ -284,3 +284,20 @@ void sk_free(STACK *st) Free((char *)st); } +int sk_num(STACK *st) +{ + if(st == NULL) return -1; + return st->num; +} + +char *sk_value(STACK *st, int i) +{ + if(st == NULL) return NULL; + return st->data[i]; +} + +char *sk_set(STACK *st, int i, char *value) +{ + if(st == NULL) return NULL; + return (st->data[i] = value); +} diff --git a/crypto/stack/stack.h b/crypto/stack/stack.h index 3629b0d3c8..ec629d0fd2 100644 --- a/crypto/stack/stack.h +++ b/crypto/stack/stack.h @@ -73,11 +73,17 @@ typedef struct stack_st int (*comp)(); } STACK; -#define sk_num(sk) ((sk)->num) -#define sk_value(sk,n) ((sk)->data[n]) #define sk_new_null() sk_new(NULL) +#define M_sk_num(sk) ((sk)->num) +#define M_sk_value(sk,n) ((sk)->data[n]) + +int sk_num(STACK *); +char *sk_value(STACK *, int); + +char *sk_set(STACK *, int, char *); + STACK *sk_new(int (*cmp)()); void sk_free(STACK *); void sk_pop_free(STACK *st, void (*func)()); |