: SYMBOL_MATCHES_NATURAL_NAME (*top,name)))
: SYMBOL_MATCHES_SEARCH_NAME (*top,name)))
lookup_partial_symbol (struct partial_symtab *pst, const char *name,		       const char *linkage_name, int global,		       domain_enum domain){  struct partial_symbol *temp;  struct partial_symbol **start, **psym;  struct partial_symbol **top, **real_top, **bottom, **center;  int length = (global ? pst->n_global_syms : pst->n_static_syms);  int do_linear_search = 1;    if (length == 0)    {      return (NULL);    }  start = (global ?	   pst->objfile->global_psymbols.list + pst->globals_offset :	   pst->objfile->static_psymbols.list + pst->statics_offset);    if (global)			/* This means we can use a binary search. */    {      do_linear_search = 0;      /* Binary search.  This search is guaranteed to end with center         pointing at the earliest partial symbol whose name might be         correct.  At that point *all* partial symbols with an         appropriate name will be checked against the correct         domain.  */      bottom = start;      top = start + length - 1;      real_top = top;      while (top > bottom)	{	  center = bottom + (top - bottom) / 2;	  if (!(center < top))	    internal_error (__FILE__, __LINE__, "failed internal consistency check");	  if (!do_linear_search	      && (SYMBOL_LANGUAGE (*center) == language_java))	    {	      do_linear_search = 1;	    }	  if (strcmp_iw_ordered (SYMBOL_NATURAL_NAME (*center), name) >= 0)	    {	      top = center;	    }	  else	    {	      bottom = center + 1;	    }	}      if (!(top == bottom))	internal_error (__FILE__, __LINE__, "failed internal consistency check");      while (top <= real_top	     && (linkage_name != NULL		 ? strcmp (SYMBOL_LINKAGE_NAME (*top), linkage_name) == 0		 : SYMBOL_MATCHES_NATURAL_NAME (*top,name)))	{	  if (SYMBOL_DOMAIN (*top) == domain)	    {		  return (*top);	    }	  top++;	}    }  /* Can't use a binary search or else we found during the binary search that     we should also do a linear search. */  if (do_linear_search)    {			      for (psym = start; psym < start + length; psym++)	{	  if (domain == SYMBOL_DOMAIN (*psym))	    {	      if (linkage_name != NULL		  ? strcmp (SYMBOL_LINKAGE_NAME (*psym), linkage_name) == 0		  : SYMBOL_MATCHES_NATURAL_NAME (*psym, name))		{		  return (*psym);		}	    }	}    }  return (NULL);}