- if (i == SESSION_MAX_TERMLISTS)
- {
- session_log(s, YLOG_FATAL, "Too many termlists");
- wrbuf_destroy(facet_wrbuf);
- wrbuf_destroy(display_wrbuf);
- return;
- }
-
- s->termlists[i].name = nmem_strdup(s->nmem, type);
- s->termlists[i].termlist = termlist_create(s->nmem);
- s->num_termlists = i + 1;
+ *tp = nmem_malloc(s->nmem, sizeof(**tp));
+ (*tp)->name = nmem_strdup(s->nmem, type);
+ (*tp)->termlist = termlist_create(s->nmem);
+ (*tp)->next = 0;