- if (field >= db->num_fields)
- {
- db->error=DB_ERROR_INDEX_OUT_OF_RANGE;
- return(0);
- }
- /* FIXME: we lose type checking at this point */
- if ((idx=(LHASH_OF(STRING) *)lh_new(hash,cmp)) == NULL)
- {
- db->error=DB_ERROR_MALLOC;
- return(0);
- }
- n=sk_num(db->data);
- for (i=0; i<n; i++)
- {
- r=(STRING *)sk_value(db->data,i);
- if ((qual != NULL) && (qual(r) == 0)) continue;
- if ((r=lh_STRING_insert(idx,r)) != NULL)
- {
- db->error=DB_ERROR_INDEX_CLASH;
- db->arg1=sk_find(db->data,(char *)r);
- db->arg2=i;
- lh_STRING_free(idx);
- return(0);
- }
- }
- if (db->index[field] != NULL) lh_STRING_free(db->index[field]);
- db->index[field]=idx;
- db->qual[field]=qual;
- return(1);
- }
+ if (field >= db->num_fields) {
+ db->error = DB_ERROR_INDEX_OUT_OF_RANGE;
+ return (0);
+ }
+ /* FIXME: we lose type checking at this point */
+ if ((idx = (LHASH_OF(OPENSSL_STRING) *)lh_new(hash, cmp)) == NULL) {
+ db->error = DB_ERROR_MALLOC;
+ return (0);
+ }
+ n = sk_OPENSSL_PSTRING_num(db->data);
+ for (i = 0; i < n; i++) {
+ r = sk_OPENSSL_PSTRING_value(db->data, i);
+ if ((qual != NULL) && (qual(r) == 0))
+ continue;
+ if ((r = lh_OPENSSL_STRING_insert(idx, r)) != NULL) {
+ db->error = DB_ERROR_INDEX_CLASH;
+ db->arg1 = sk_OPENSSL_PSTRING_find(db->data, r);
+ db->arg2 = i;
+ lh_OPENSSL_STRING_free(idx);
+ return (0);
+ }
+ }
+ lh_OPENSSL_STRING_free(db->index[field]);
+ db->index[field] = idx;
+ db->qual[field] = qual;
+ return (1);
+}