rem: if (!_h->parsed) (rr_t*)_h->parsed = r;
add: if (!_h->parsed) _h->parsed = (void*)r;
context: int parse_rr(struct hdr_field* _h){	rr_t* r, *last;	str s;	param_hooks_t hooks;	if (!_h) {		LOG(L_ERR, "parse_rr(): Invalid parameter value\n");		return -1;	}	if (_h->parsed) {		     /* Already parsed, return */		return 0;	}	     /* Make a temporary copy of the string pointer */	s.s = _h->body.s;	s.len = _h->body.len;	trim_leading(&s);	last = 0;	while(1) {		     /* Allocate and clear rr stucture */		r = (rr_t*)pkg_malloc(sizeof(rr_t));		if (!r) {			LOG(L_ERR, "parse_rr(): No memory left\n");			goto error;		}		memset(r, 0, sizeof(rr_t));				     /* Parse name-addr part of the header */		if (parse_nameaddr(&s, &r->nameaddr) < 0) {			LOG(L_ERR, "parse_rr(): Error while parsing name-addr\n");			goto error;		}		r->len = r->nameaddr.len;		     /* Shift just behind the closing > */		s.s = r->nameaddr.name.s + r->nameaddr.len;  /* Point just behind > */		s.len -= r->nameaddr.len;		     /* Nothing left, finish */		if (s.len == 0) goto ok;				if (s.s[0] == ';') {         /* Contact parameter found */			s.s++;			s.len--;			trim_leading(&s);						if (s.len == 0) {				LOG(L_ERR, "parse_rr(): Error while parsing params\n");				goto error;			}			     /* Parse all parameters */			if (parse_params(&s, CLASS_ANY, &hooks, &r->params) < 0) {				LOG(L_ERR, "parse_rr(): Error while parsing params\n");				goto error;			}			r->len = r->params->name.s + r->params->len - r->nameaddr.name.s;			     /* Copy hooks */			     /*r->r2 = hooks.rr.r2; */			if (s.len == 0) goto ok;		}		     /* Next character is comma or end of header*/		s.s++;		s.len--;		trim_leading(&s);		if (s.len == 0) {			LOG(L_ERR, "parse_rr(): Text after comma missing\n");			goto error;		}		     /* Append the structure as last parameter of the linked list */		if (!_h->parsed) (rr_t*)_h->parsed = r;		if (last) last->next = r;		last = r;	} error:	if (r) pkg_free(r);	free_rr((rr_t**)&_h->parsed); /* Free any contacts created so far */	return -1; ok:	if (!_h->parsed) (rr_t*)_h->parsed = r;	if (last) last->next = r;	return 0;}