summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDr. Stephen Henson <steve@openssl.org>2009-04-04 11:44:48 +0000
committerDr. Stephen Henson <steve@openssl.org>2009-04-04 11:44:48 +0000
commitda29b0d3357b54d859f690b4d7ba3be7210d5b11 (patch)
tree60e3c86a814f447110288785b856ac00992fc0e0
parent6abbc68188ff0a8e44d6dca8874449faf2b4981f (diff)
Fix for VC++ 6 which chokes on the empty argument.
-rw-r--r--crypto/objects/objects.h22
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), \