if ((smp = map_object((char *)sodp->sod_name, sodp, 0)) == NULL) {
if ((smp = map_object(sodp, 0)) == NULL) {
__dlopen(name, mode)	char	*name;	int	mode;{	struct sod	*sodp;	struct so_map	*smp;	/*	 * A NULL argument returns the current set of mapped objects.	 */	if (name == NULL) {		LM_PRIVATE(link_map_head)->spd_refcount++;		return link_map_head;	}	if ((sodp = (struct sod *)malloc(sizeof(struct sod))) == NULL) {		dlerrno = ENOMEM;		return NULL;	}	build_sod(name, sodp);	if ((smp = map_object((char *)sodp->sod_name, sodp, 0)) == NULL) {#ifdef DEBUGxprintf("%s: %s\n", name, strerror(errno));#endif		dlerrno = errno;		return NULL;	}	if (LM_PRIVATE(smp)->spd_refcount++ > 0)		return smp;	if (load_subs(smp) != 0)		return NULL;	init_maps(smp);	return smp;}