Exemplo n.º 1
0
/* split filelist dep into basename and dirname */
static void
create_dirs_names_array(struct addfileprovides_cbdata *cbd, Pool *pool)
{
  int i;
  cbd->dirs = solv_malloc2(cbd->nfiles, sizeof(char *));
  cbd->names = solv_malloc2(cbd->nfiles, sizeof(char *));
  for (i = 0; i < cbd->nfiles; i++)
    {
      char *s = solv_strdup(pool_id2str(pool, cbd->ids[i]));
      cbd->dirs[i] = s;
      s = strrchr(s, '/');
      *s = 0;
      cbd->names[i] = s + 1;
    }
}
Exemplo n.º 2
0
void
queue_alloc_one(Queue *q)
{
  if (!q->alloc)
    {
      q->alloc = solv_malloc2(q->count + EXTRA_SPACE, sizeof(Id));
      if (q->count)
	memcpy(q->alloc, q->elements, q->count * sizeof(Id));
      q->elements = q->alloc;
      q->left = EXTRA_SPACE;
    }
  else if (q->alloc != q->elements)
    {
      int l = q->elements - q->alloc;
      if (q->count)
        memmove(q->alloc, q->elements, q->count * sizeof(Id));
      q->elements -= l;
      q->left += l;
    }
  else
    {
      q->elements = q->alloc = solv_realloc2(q->alloc, q->count + EXTRA_SPACE, sizeof(Id));
      q->left = EXTRA_SPACE;
    }
}
Exemplo n.º 3
0
void
queue_init_clone(Queue *t, Queue *s)
{
  if (!s->elements)
    {
      t->alloc = t->elements = 0;
      t->count = t->left = 0;
      return;
    }
  t->alloc = t->elements = solv_malloc2(s->count + EXTRA_SPACE, sizeof(Id));
  if (s->count)
    memcpy(t->alloc, s->elements, s->count * sizeof(Id));
  t->count = s->count;
  t->left = EXTRA_SPACE;
}