- ptinfo = (struct rset_pp_info *) xmalloc (sizeof(*ptinfo));
- ptinfo->next = info->ispt_list;
- info->ispt_list = ptinfo;
- ptinfo->pt = isamb_pp_open (info->is, info->pos);
- ptinfo->info = info;
- if (ct->rset_terms[0]->nn < 0)
- ct->rset_terms[0]->nn = isamb_pp_num (ptinfo->pt);
- ct->rset_terms[0]->count = 0;
- ptinfo->countp = &ct->rset_terms[0]->count;
- ptinfo->buf = xmalloc (info->key_size);
- return ptinfo;
+ rfd=rfd_create_base(ct);
+ if (rfd->priv)
+ ptinfo=(struct rset_pp_info *) (rfd->priv);
+ else {
+ ptinfo = (struct rset_pp_info *)nmem_malloc(ct->nmem,sizeof(*ptinfo));
+ ptinfo->buf = nmem_malloc (ct->nmem,ct->keycontrol->key_size);
+ rfd->priv=ptinfo;
+ }
+ ptinfo->pt = isamb_pp_open (info->is, info->pos, ct->scope );
+ return rfd;