int CRYPTO_add_info_(const char *file, int line, const char *info)
int CRYPTO_add_info_(const char *info, const char *file, int line)
int CRYPTO_add_info_(const char *file, int line, const char *info)	{	APP_INFO *ami, *amim;	int ret=0;	if (is_MemCheck_on())		{		MemCheck_off();		if ((ami = (APP_INFO *)Malloc(sizeof(APP_INFO))) == NULL)			{			ret=0;			goto err;			}		if (amih == NULL)			{			if ((amih=lh_new(app_info_hash,app_info_cmp)) == NULL)				{				Free(ami);				ret=0;				goto err;				}			}		ami->thread=CRYPTO_thread_id();		ami->file=file;		ami->line=line;		ami->info=info;		ami->references=1;		ami->next=NULL;		if ((amim=(APP_INFO *)lh_insert(amih,(char *)ami)) != NULL)			{#ifdef LEVITTE_DEBUG			if (ami->thread != amim->thread)				{				fprintf(stderr, "CRYPTO_add_info(): previous info has other thread ID (%lu) than the current thread (%lu)!!!!\n",					amim->thread, ami->thread);				abort();				}#endif			ami->next=amim;			} err:		MemCheck_on();		}	return(ret);	}