- rset_isamb_parms *pt = (rset_isamb_parms *) parms;
- struct rset_isamb_info *info;
-
- ct->flags |= RSET_FLAG_VOLATILE;
- info = (struct rset_isamb_info *) xmalloc (sizeof(*info));
- info->is = pt->is;
- info->pos = pt->pos;
- info->key_size = pt->key_size;
- info->cmp = pt->cmp;
- info->ispt_list = NULL;
- ct->no_rset_terms = 1;
- ct->rset_terms = (RSET_TERM *) xmalloc (sizeof(*ct->rset_terms));
- ct->rset_terms[0] = pt->rset_term;
- return info;
+ RSET rnew = rset_create_base(
+ kcontrol->filter_func ? &control_filter : &control,
+ nmem, kcontrol, scope, term, 0, 0);
+ struct rset_private *info;
+ assert(pos);
+ if (!log_level_initialized)
+ {
+ log_level = yaz_log_module_level("rsisamb");
+ log_level_initialized = 1;
+ }
+ info = (struct rset_private *) nmem_malloc(rnew->nmem, sizeof(*info));
+ info->is = is;
+ info->pos = pos;
+ rnew->priv = info;
+ yaz_log(log_level, "rsisamb_create");
+ return rnew;