- if (!cur_xpelement)
- {
- cur_xpelement = (data1_xpelement *)
- nmem_malloc(data1_nmem_get(dh), sizeof(*cur_xpelement));
- res->xp_elements = cur_xpelement;
- } else {
- cur_xpelement->next = (data1_xpelement *)
- nmem_malloc(data1_nmem_get(dh), sizeof(*cur_xpelement));
- cur_xpelement = cur_xpelement->next;
- }
+ *cur_xpelement = (data1_xpelement *)
+ nmem_malloc(data1_nmem_get(dh), sizeof(**cur_xpelement));
+ (*cur_xpelement)->next = 0;
+ (*cur_xpelement)->match_next = 0;
+ if (last_match)
+ last_match->match_next = *cur_xpelement;