示例#1
0
void
optpp(md_addr_t addr, int L,
      int (*stack_proc)(int start, int end),
      void (*inf_handler)(md_addr_t addr, int cur_time))
{
  int prev_time, sf;

  if (p_inum > la_limit-1)
    {
      start = (la_limit % (2*LA_DIST));
      end = start + LA_DIST;
      if ((sf = (*stack_proc)(start, end))  == 1)
	return;
      la_limit += LA_DIST;
      toggle(oe_flag);		
      if (oe_flag)
	base += 2*LA_DIST;
    }
  addr >>= L;
  addr_array[(p_inum - base) % (2*LA_DIST)] = addr;
  if ((prev_time = ft_hash(addr)) >= 0)
    {
      if ((la_limit - prev_time) <= 2*LA_DIST)
	time_array[(prev_time - base) % (2*LA_DIST)] = p_inum;
      else
	(*inf_handler)(addr, p_inum);
    }
  else
    (*inf_handler)(addr, p_inum);
  ++p_inum;
}
示例#2
0
文件: ft_hash.c 项目: iTzDyms/HotRace
int		ft_place_tree(t_btree **hash_tab, char *keyword, char *value)
{
	size_t		hash;

	hash = ft_hash(keyword);
	return (ft_create_tree(&hash_tab[hash], keyword, value));
	free(keyword);
	free(value);
}