private static NameType FindNameType(string name)
{
#if DEBUG
for (int i = 1; i < s_mapNameTypeXdr.Length; ++i)
{
Debug.Assert((s_mapNameTypeXdr[i - 1].CompareTo(s_mapNameTypeXdr[i].name)) < 0, "incorrect sorting");
}
#endif
int index = Array.BinarySearch(s_mapNameTypeXdr, name);
if (index < 0)
{
#if DEBUG
// Let's check that we realy don't have this name:
foreach (NameType nt in s_mapNameTypeXdr)
{
Debug.Assert(nt.name != name, "FindNameType('" + name + "') -- failed. Existed name not found");
}
#endif
throw ExceptionBuilder.UndefinedDatatype(name);
}
Debug.Assert(s_mapNameTypeXdr[index].name == name, "FindNameType('" + name + "') -- failed. Wrong name found");
return s_mapNameTypeXdr[index];
}