Beispiel #1
0
Hash MakeHash(int size, int (*map)(unsigned int)) 
{
  Hash retval;
  int i;

  retval = (Hash) localmalloc(sizeof(*retval));
  retval->array = (HashEntry *) localmalloc(size*sizeof(HashEntry));
  for (i=0; i<size; i++)
    retval->array[i]=NULL;
  retval->mapfunc = map;
  retval->size = size;
  return retval;
}
Beispiel #2
0
Hash MakeHash(int size, int (*map)(unsigned int)) 
{
  Hash retval;
  void* cp;

  /* modified by jqwu@princeton, use the library malloc */
  retval = (Hash)localmalloc(sizeof(*retval)); 
  cp = localmalloc(size*sizeof(HashEntry)); /* was localmalloc */
  memset(cp, 0, size * sizeof(HashEntry));
  retval->array = (HashEntry*)cp;
  retval->mapfunc = map;
  retval->size = size;
  return retval;
}
Beispiel #3
0
void HashInsert(void *entry,unsigned int key,Hash hash) 
{
  HashEntry ent;
  int j;
  
  assert(3,!HashLookup(key,hash));
  
  j = (hash->mapfunc)(key);
  ent = (HashEntry) localmalloc(sizeof(*ent));
  ent->next = hash->array[j];
  hash->array[j]=ent;
  ent->key = key;
  ent->entry = entry;
}