Index: openssl/crypto/asn1/a_strnid.c |
=================================================================== |
--- openssl/crypto/asn1/a_strnid.c (revision 105093) |
+++ openssl/crypto/asn1/a_strnid.c (working copy) |
@@ -67,7 +67,6 @@ |
static void st_free(ASN1_STRING_TABLE *tbl); |
static int sk_table_cmp(const ASN1_STRING_TABLE * const *a, |
const ASN1_STRING_TABLE * const *b); |
-static int table_cmp(const void *a, const void *b); |
/* This is the global mask for the mbstring functions: this is use to |
@@ -96,7 +95,7 @@ |
* default: the default value, Printable, T61, BMP. |
*/ |
-int ASN1_STRING_set_default_mask_asc(char *p) |
+int ASN1_STRING_set_default_mask_asc(const char *p) |
{ |
unsigned long mask; |
char *end; |
@@ -158,7 +157,7 @@ |
/* This table must be kept in NID order */ |
-static ASN1_STRING_TABLE tbl_standard[] = { |
+static const ASN1_STRING_TABLE tbl_standard[] = { |
{NID_commonName, 1, ub_common_name, DIRSTRING_TYPE, 0}, |
{NID_countryName, 2, 2, B_ASN1_PRINTABLESTRING, STABLE_NO_MASK}, |
{NID_localityName, 1, ub_locality_name, DIRSTRING_TYPE, 0}, |
@@ -186,22 +185,23 @@ |
return (*a)->nid - (*b)->nid; |
} |
-static int table_cmp(const void *a, const void *b) |
+DECLARE_OBJ_BSEARCH_CMP_FN(ASN1_STRING_TABLE, ASN1_STRING_TABLE, table); |
+ |
+static int table_cmp(const ASN1_STRING_TABLE *a, const ASN1_STRING_TABLE *b) |
{ |
- const ASN1_STRING_TABLE *sa = a, *sb = b; |
- return sa->nid - sb->nid; |
+ return a->nid - b->nid; |
} |
+IMPLEMENT_OBJ_BSEARCH_CMP_FN(ASN1_STRING_TABLE, ASN1_STRING_TABLE, table); |
+ |
ASN1_STRING_TABLE *ASN1_STRING_TABLE_get(int nid) |
{ |
int idx; |
ASN1_STRING_TABLE *ttmp; |
ASN1_STRING_TABLE fnd; |
fnd.nid = nid; |
- ttmp = (ASN1_STRING_TABLE *) OBJ_bsearch((char *)&fnd, |
- (char *)tbl_standard, |
- sizeof(tbl_standard)/sizeof(ASN1_STRING_TABLE), |
- sizeof(ASN1_STRING_TABLE), table_cmp); |
+ ttmp = OBJ_bsearch_table(&fnd, tbl_standard, |
+ sizeof(tbl_standard)/sizeof(ASN1_STRING_TABLE)); |
if(ttmp) return ttmp; |
if(!stable) return NULL; |
idx = sk_ASN1_STRING_TABLE_find(stable, &fnd); |