unsigned long int nentries = ++table->nentries; if (nentries > table->maxnentries) table->maxnentries = nentries;
cache_add (int type, void *key, size_t len, const void *packet, size_t total,	   void *data, int last, time_t t, struct database *table, uid_t owner){  unsigned long int hash = __nis_hash (key, len) % table->module;  struct hashentry *newp;  newp = malloc (sizeof (struct hashentry));  if (newp == NULL)    error (EXIT_FAILURE, errno, _("while allocating hash table entry"));  newp->type = type;  newp->len = len;  newp->key = key;  newp->owner = owner;  newp->data = data;  newp->timeout = t;  newp->packet = packet;  newp->total = total;  newp->last = last;  /* Put the new entry in the first position.  */  do    newp->next = table->array[hash];  while (atomic_compare_and_exchange_bool_acq (&table->array[hash], newp,					       newp->next));  /* Update the statistics.  */  if (data == (void *) -1)    ++table->negmiss;  else if (last)    ++table->posmiss;}