void (*f)();
union void_fn_to_char_u f;
int OBJ_NAME_add(const char *name, int type, const char *data)	{	void (*f)();	OBJ_NAME *onp,*ret;	int alias;	if ((names_lh == NULL) && !OBJ_NAME_init()) return(0);	alias=type&OBJ_NAME_ALIAS;	type&= ~OBJ_NAME_ALIAS;	onp=(OBJ_NAME *)Malloc(sizeof(OBJ_NAME));	if (onp == NULL)		{		/* ERROR */		return(0);		}	onp->name=name;	onp->alias=alias;	onp->type=type;	onp->data=data;	ret=(OBJ_NAME *)lh_insert(names_lh,(char *)onp);	if (ret != NULL)		{		/* free things */		if ((names_free != NULL) && (sk_num(names_free) > ret->type))			{			f=(void (*)())sk_value(names_free,ret->type);			f(ret->name,ret->type,ret->data);			}		Free((char *)ret);		}	else		{		if (lh_error(names_lh))			{			/* ERROR */			return(0);			}		}	return(1);	}