private int FindRunLimit(int index, int limit, sbyte[] validSet)
{
--index;
loop:
while (++index < limit) {
sbyte t = resultTypes[index];
for (int i = 0; i < validSet.Length; ++i) {
if (t == validSet[i]) {
goto loop;
}
}
// didn't find a match in validSet
return index;
}
return limit;
}