int delta = (at < m_Cache[m_CachePos].Key) ? -1 : 1;
do
{
+ if ( m_CachePos < 0 || m_CachePos == m_CacheSize )
+ {
+ // something is very wrong with HTML, give up by returning an
+ // impossibly large value which is going to be ignored by the
+ // caller
+ *end1 =
+ *end2 = INT_MAX;
+ return;
+ }
+
m_CachePos += delta;
}
while (m_Cache[m_CachePos].Key != at);