rem: {	struct soap_ilist *ip; DBGLOG(TEST,SOAP_MESSAGE(fdebug, "Class id enter id='%s' t=%d loc=%p type='%s' arrayType='%s'\n", id, t, p, type?type:"", arrayType?arrayType:"")); soap->alloced = 0; if (!*id) {	if (!p) return soap_instantiate(soap, t, type, arrayType, NULL); else return p; } ip = soap_lookup(soap, id); if (!ip) {	ip = soap_enter(soap, id); ip->type = t; ip->link = NULL; ip->copy = NULL; ip->flist = NULL; if (!p) p = soap_instantiate(soap, t, type, arrayType, &n); ip->ptr = p; ip->size = n; ip->level = 0; } else if (ip->ptr) {	if (p) {	soap->error = SOAP_MULTI_ID; return NULL; } } else {	if (!p) p = soap_instantiate(soap, t, type, arrayType, &n); ip->ptr = p; ip->size = n; ip->level = 0; if (!soap->blist) soap_resolve_ptr(ip); } return ip->ptr;
add: {	return soap_id_enter(soap, id, p, t, n, 0, type, arrayType, soap_instantiate);
context: SOAP_FMAC3 void* SOAP_FMAC4 soap_class_id_enter(struct soap *soap, const char *id, void *p, int t, size_t n, const char *type, const char *arrayType){	struct soap_ilist *ip;	DBGLOG(TEST,SOAP_MESSAGE(fdebug, "Class id enter id='%s' t=%d loc=%p type='%s' arrayType='%s'\n", id, t, p, type?type:"", arrayType?arrayType:""));	soap->alloced = 0;	if (!*id)	{	if (!p)			return soap_instantiate(soap, t, type, arrayType, NULL);		else			return p;	}	ip = soap_lookup(soap, id);	if (!ip)	{	ip = soap_enter(soap, id);		ip->type = t;		ip->link = NULL;		ip->copy = NULL;		ip->flist = NULL;		if (!p)			p = soap_instantiate(soap, t, type, arrayType, &n);		ip->ptr = p;		ip->size = n;		ip->level = 0;	}	else if (ip->ptr)	{	if (p)		{	soap->error = SOAP_MULTI_ID;			return NULL;		}	}	else	{	if (!p)			p = soap_instantiate(soap, t, type, arrayType, &n);		ip->ptr = p;		ip->size = n;		ip->level = 0;		if (!soap->blist)			soap_resolve_ptr(ip);	}	return ip->ptr;}