void wx28HtmlParser::SetSource(const wxString& src) { DestroyDOMTree(); m_Source = src; CreateDOMTree(); m_CurTag = NULL; m_CurTextPiece = 0; }
wxHtmlParser::~wxHtmlParser() { while (RestoreState()) {} DestroyDOMTree(); WX_CLEAR_ARRAY(m_HandlersStack); WX_CLEAR_HASH_SET(wxHtmlTagHandlersSet, m_HandlersSet); delete m_entitiesParser; delete m_Source; }
void wxHtmlParser::SetSource(const wxString& src) { DestroyDOMTree(); // NB: This is allocated on heap because wxHtmlTag uses iterators and // making a copy of m_Source string in SetSourceAndSaveState() and // RestoreState() would invalidate them (because wxString::m_impl's // memory would change completely twice and iterators use pointers // into it). So instead, we keep the string object intact and only // store/restore pointer to it, for which we need it to be allocated // on the heap. delete m_Source; m_Source = new wxString(src); CreateDOMTree(); m_CurTag = NULL; m_CurTextPiece = 0; }
wx28HtmlParser::~wx28HtmlParser() { while (RestoreState()) {} DestroyDOMTree(); if (m_HandlersStack) { wxList& tmp = *m_HandlersStack; wxList::iterator it, en; for( it = tmp.begin(), en = tmp.end(); it != en; ++it ) delete (wxHashTable*)*it; tmp.clear(); } delete m_HandlersStack; m_HandlersHash.Clear(); WX_CLEAR_LIST(wxList, m_HandlersList); delete m_entitiesParser; }
bool wx28HtmlParser::RestoreState() { if (!m_SavedStates) return false; DestroyDOMTree(); wx28HtmlParserState *s = m_SavedStates; m_SavedStates = s->m_nextState; m_CurTag = s->m_curTag; m_Tags = s->m_tags; m_TextPieces = s->m_textPieces; m_CurTextPiece = s->m_curTextPiece; m_Source = s->m_source; delete s; return true; }
wxHtmlParser::~wxHtmlParser() { #if defined(__INTEL_COMPILER) && 1 /* VDM auto patch */ # pragma ivdep # pragma swp # pragma unroll # pragma prefetch # if 0 # pragma simd noassert # endif #endif /* VDM auto patch */ while (RestoreState()) {} DestroyDOMTree(); WX_CLEAR_ARRAY(m_HandlersStack); WX_CLEAR_HASH_SET(wxHtmlTagHandlersSet, m_HandlersSet); delete m_entitiesParser; delete m_Source; }
void wx28HtmlParser::DoneParser() { DestroyDOMTree(); }