@morten
are you sure we still need to check this in DoParse().
else if ( m_pTokensTree
&& ( (peek==ParserConsts::semicolon)
|| ( (m_Options.useBuffer && (peek.GetChar(0) == _T('(')))
&& (!m_Str.Contains(ParserConsts::dcolon)) ) ) )
here I don't think we need check m_pTokensTree
because it has been done in Parse() which called Doparse()
bool ParserThread::Parse()
{
TRACE(_T("Parse() : Parsing '%s'"), m_Filename.wx_str());
if (!InitTokenizer())
return false;
bool result = false;
m_ParsingTypedef = false;
do
{
if (!m_pTokensTree || !m_Tokenizer.IsOK())
break;
if (!m_Options.useBuffer) // Parse a file
{
s_MutexProtection.Enter();
m_FileIdx = m_pTokensTree->ReserveFileForParsing(m_Filename);
s_MutexProtection.Leave();
if (!m_FileIdx)
break;
}
DoParse();
if (!m_Options.useBuffer) // Parsing a file
{
s_MutexProtection.Enter();
m_pTokensTree->FlagFileAsParsed(m_Filename);
s_MutexProtection.Leave();
}
result = true;
} while (false);
return result;
}
if (!m_pTokensTree || !m_Tokenizer.IsOK())
break;
Quote from: blueshake on February 18, 2010, 10:12:14 AM
are you sure we still need to check this in DoParse().
As it is a thread which may have gotten terminated or is in the process of termination another check is safe and won't harm. Do you believe it eats all processor power?
QuoteDo you believe it eats all processor power?
No。 :D