diff options
author | Dr. Stephen Henson <steve@openssl.org> | 2009-04-04 19:54:06 +0000 |
---|---|---|
committer | Dr. Stephen Henson <steve@openssl.org> | 2009-04-04 19:54:06 +0000 |
commit | 06ddf8eb08af58e00032a5f8d381d837b82fa644 (patch) | |
tree | 581fedb7f7a0bad6cb721905ebbc42d0c5086ca1 /crypto/objects | |
parent | 71fca64d96003e2683eec65dab4df124a642431b (diff) | |
download | openssl-06ddf8eb08af58e00032a5f8d381d837b82fa644.tar.gz |
Updates from 1.0.0-stable
Diffstat (limited to 'crypto/objects')
-rw-r--r-- | crypto/objects/objects.h | 22 |
1 files changed, 16 insertions, 6 deletions
diff --git a/crypto/objects/objects.h b/crypto/objects/objects.h index 65b6f01358..bd0ee52feb 100644 --- a/crypto/objects/objects.h +++ b/crypto/objects/objects.h @@ -1054,24 +1054,34 @@ const void * OBJ_bsearch_ex_(const void *key,const void *base,int num, * the non-constness means a lot of complication, and in practice * comparison routines do always not touch their arguments. */ -#define _IMPLEMENT_OBJ_BSEARCH_CMP_FN(scope, type1, type2, nm) \ + +#define IMPLEMENT_OBJ_BSEARCH_CMP_FN(type1, type2, nm) \ static int nm##_cmp_BSEARCH_CMP_FN(const void *a_, const void *b_) \ { \ type1 const *a = a_; \ type2 const *b = b_; \ return nm##_cmp(a,b); \ } \ - scope type2 *OBJ_bsearch_##nm(type1 *key, type2 const *base, int num) \ + static type2 *OBJ_bsearch_##nm(type1 *key, type2 const *base, int num) \ { \ return (type2 *)OBJ_bsearch_(key, base, num, sizeof(type2), \ nm##_cmp_BSEARCH_CMP_FN); \ } \ extern void dummy_prototype(void) -#define IMPLEMENT_OBJ_BSEARCH_CMP_FN(type1, type2, cmp) \ - _IMPLEMENT_OBJ_BSEARCH_CMP_FN(static, type1, type2, cmp) -#define IMPLEMENT_OBJ_BSEARCH_GLOBAL_CMP_FN(type1, type2, cmp) \ - _IMPLEMENT_OBJ_BSEARCH_CMP_FN(, type1, type2, cmp) +#define IMPLEMENT_OBJ_BSEARCH_GLOBAL_CMP_FN(type1, type2, nm) \ + static int nm##_cmp_BSEARCH_CMP_FN(const void *a_, const void *b_) \ + { \ + type1 const *a = a_; \ + type2 const *b = b_; \ + return nm##_cmp(a,b); \ + } \ + type2 *OBJ_bsearch_##nm(type1 *key, type2 const *base, int num) \ + { \ + return (type2 *)OBJ_bsearch_(key, base, num, sizeof(type2), \ + nm##_cmp_BSEARCH_CMP_FN); \ + } \ + extern void dummy_prototype(void) #define OBJ_bsearch(type1,key,type2,base,num,cmp) \ ((type2 *)OBJ_bsearch_(CHECKED_PTR_OF(type1,key),CHECKED_PTR_OF(type2,base), \ |