ADDED_OBJ *ca = (ADDED_OBJ *)ca_void; ADDED_OBJ *cb = (ADDED_OBJ *)cb_void;
const ADDED_OBJ *ca = (const ADDED_OBJ *)ca_void; const ADDED_OBJ *cb = (const ADDED_OBJ *)cb_void;
static int add_cmp(const void *ca_void, const void *cb_void)	{	ASN1_OBJECT *a,*b;	int i;	ADDED_OBJ *ca = (ADDED_OBJ *)ca_void;	ADDED_OBJ *cb = (ADDED_OBJ *)cb_void;	i=ca->type-cb->type;	if (i) return(i);	a=ca->obj;	b=cb->obj;	switch (ca->type)		{	case ADDED_DATA:		i=(a->length - b->length);		if (i) return(i);		return(memcmp(a->data,b->data,a->length));	case ADDED_SNAME:		if (a->sn == NULL) return(-1);		else if (b->sn == NULL) return(1);		else return(strcmp(a->sn,b->sn));	case ADDED_LNAME:		if (a->ln == NULL) return(-1);		else if (b->ln == NULL) return(1);		else return(strcmp(a->ln,b->ln));	case ADDED_NID:		return(a->nid-b->nid);	default:		/* abort(); */		return 0;		}	}