Add a check to see that HTML5 modula has been initialized properly before use

This commit is contained in:
Henri Sivonen 2009-03-13 14:41:55 +02:00
Родитель 63bf6755ae
Коммит da5e154b03
2 изменённых файлов: 15 добавлений и 0 удалений

Просмотреть файл

@ -47,6 +47,10 @@ class nsHtml5Module
static void ReleaseStatics();
static already_AddRefed<nsIParser> NewHtml5Parser();
static nsresult Initialize(nsIParser* aParser, nsIDocument* aDoc, nsIURI* aURI, nsISupports* aContainer, nsIChannel* aChannel);
#ifdef DEBUG
private:
static PRBool sNsHtml5ModuleInitialized;
#endif
};
#endif // nsHtml5Module_h__

Просмотреть файл

@ -63,12 +63,18 @@ nsHtml5Module::InitializeStatics()
nsHtml5Tokenizer::initializeStatics();
nsHtml5TreeBuilder::initializeStatics();
nsHtml5UTF16Buffer::initializeStatics();
#ifdef DEBUG
sNsHtml5ModuleInitialized = PR_TRUE;
#endif
}
// static
void
nsHtml5Module::ReleaseStatics()
{
#ifdef DEBUG
sNsHtml5ModuleInitialized = PR_FALSE;
#endif
nsHtml5AttributeName::releaseStatics();
nsHtml5ElementName::releaseStatics();
nsHtml5HtmlAttributes::releaseStatics();
@ -85,6 +91,7 @@ nsHtml5Module::ReleaseStatics()
already_AddRefed<nsIParser>
nsHtml5Module::NewHtml5Parser()
{
NS_ABORT_IF_FALSE(sNsHtml5ModuleInitialized, "nsHtml5Module not initialized.");
nsIParser* rv = static_cast<nsIParser*> (new nsHtml5Parser());
NS_ADDREF(rv);
return rv;
@ -95,7 +102,11 @@ nsHtml5Module::NewHtml5Parser()
nsresult
nsHtml5Module::Initialize(nsIParser* aParser, nsIDocument* aDoc, nsIURI* aURI, nsISupports* aContainer, nsIChannel* aChannel)
{
NS_ABORT_IF_FALSE(sNsHtml5ModuleInitialized, "nsHtml5Module not initialized.");
nsHtml5Parser* parser = static_cast<nsHtml5Parser*> (aParser);
return parser->Initialize(aDoc, aURI, aContainer, aChannel);
}
#ifdef DEBUG
PRBool nsHtml5Module::sNsHtml5ModuleInitialized = PR_FALSE;
#endif