virtual nsresult  NotifyClose(nsCParserNode* aNode,eHTMLTags aTag,nsDTDContext* aContext,nsIHTMLContentSink* aSink) {      NS_NOTREACHED("This isn't used.  Should it be?");  nsresult result=NS_OK; CElement* theHead=GetElement(eHTMLTag_head); if(theHead) { result=theHead->OpenContext(aNode,aTag,aContext,aSink); if(NS_SUCCEEDED(result)) { result=CTextContainer::NotifyClose(aNode,aTag,aContext,aSink); mText.Truncate(0); if(NS_SUCCEEDED(result)) { result=theHead->CloseContext(aNode,aTag,aContext,aSink); } } } return result;
virtual nsresult  NotifyClose(nsIParserNode* aNode,eHTMLTags aTag,nsDTDContext* aContext,nsIHTMLContentSink* aSink) { return NS_OK;
  virtual nsresult  NotifyClose(nsCParserNode* aNode,eHTMLTags aTag,nsDTDContext* aContext,nsIHTMLContentSink* aSink) {    // XXXldb This method is completely unused because the |aNode|    // parameter is declared as |nsCParserNode| rather than    // |nsIParserNode| so it doesn't override the member function of    // CTextContainer.    NS_NOTREACHED("This isn't used.  Should it be?");    nsresult result=NS_OK;    CElement* theHead=GetElement(eHTMLTag_head);    if(theHead) {      result=theHead->OpenContext(aNode,aTag,aContext,aSink);      if(NS_SUCCEEDED(result)) {        result=CTextContainer::NotifyClose(aNode,aTag,aContext,aSink);        mText.Truncate(0);        if(NS_SUCCEEDED(result)) {          result=theHead->CloseContext(aNode,aTag,aContext,aSink);        }      }    }    return result;  }