rem: unsigned candidate = (unsigned) (tuning->is_n_buckets ? table->n_buckets * tuning->shrink_factor : (table->n_buckets * tuning->shrink_factor * tuning->growth_threshold));
add: size_t candidate = (tuning->is_n_buckets ? table->n_buckets * tuning->shrink_factor : (table->n_buckets * tuning->shrink_factor * tuning->growth_threshold));
context: hash_delete (Hash_table *table, const void *entry){  void *data;  struct hash_entry *bucket;  data = hash_find_entry (table, entry, &bucket, true);  if (!data)    return NULL;  table->n_entries--;  if (!bucket->data)    {      table->n_buckets_used--;      /* If the shrink threshold of the buckets in use has been reached,	 rehash into a smaller table.  */      if (table->n_buckets_used	  < table->tuning->shrink_threshold * table->n_buckets)	{	  /* Check more fully, before starting real work.  If tuning arguments	     became invalid, the second check will rely on proper defaults.  */	  check_tuning (table);	  if (table->n_buckets_used	      < table->tuning->shrink_threshold * table->n_buckets)	    {	      const Hash_tuning *tuning = table->tuning;	      unsigned candidate		= (unsigned) (tuning->is_n_buckets			      ? table->n_buckets * tuning->shrink_factor			      : (table->n_buckets * tuning->shrink_factor				 * tuning->growth_threshold));	      hash_rehash (table, candidate);	    }	}    }  return data;}