fixed wxHTML parser to not assert on invalid HTML input (unclosed tags)

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@51223 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Václav Slavík
2008-01-15 12:13:54 +00:00
parent 6251e0ea4a
commit 6167969572
2 changed files with 23 additions and 7 deletions

View File

@@ -246,9 +246,27 @@ void wxHtmlTagsCache::QueryTag(const wxString::const_iterator& at,
}
while (Cache()[m_CachePos].Key != at);
}
*end1 = Cache()[m_CachePos].End1;
*end2 = Cache()[m_CachePos].End2;
*hasEnding = (Cache()[m_CachePos].type == wxHtmlCacheItem::Type_Normal);
switch ( Cache()[m_CachePos].type )
{
case wxHtmlCacheItem::Type_Normal:
*end1 = Cache()[m_CachePos].End1;
*end2 = Cache()[m_CachePos].End2;
*hasEnding = true;
break;
case wxHtmlCacheItem::Type_EndingTag:
wxFAIL_MSG("QueryTag called for ending tag - can't be");
// but if it does happen, fall through, better than crashing
case wxHtmlCacheItem::Type_NoMatchingEndingTag:
// If input HTML is invalid and there's no closing tag for this
// one, pretend that it runs all the way to the end of input
*end1 = inputEnd;
*end2 = inputEnd;
*hasEnding = false;
break;
}
}