rv = ParseTag(aName, *getter_AddRefs(nodeInfo));
rv = ParseTag(aName, getter_AddRefs(nodeInfo));
XULContentSinkImpl::HandleStartElement(const PRUnichar *aName,                                        const PRUnichar **aAtts,                                       PRUint32 aAttsCount,                                        PRUint32 aIndex,                                        PRUint32 aLineNumber){   // XXX Hopefully the parser will flag this before we get here. If  // we're in the epilog, there should be no new elements  NS_PRECONDITION(mState != eInEpilog, "tag in XUL doc epilog");  if (mState == eInEpilog)      return NS_ERROR_UNEXPECTED;  if (mState != eInScript) {      FlushText();  }  // We must register namespace declarations found in the attribute  // list of an element before creating the element. This is because  // the namespace prefix for an element might be declared within  // the attribute list.  nsresult rv = PushNameSpacesFrom(aAtts);  NS_ENSURE_SUCCESS(rv, rv);  nsCOMPtr<nsINodeInfo> nodeInfo;  rv = ParseTag(aName, *getter_AddRefs(nodeInfo));  if (NS_FAILED(rv)) {     return rv;  }  switch (mState) {  case eInProlog:      // We're the root document element      rv = OpenRoot(aAtts, aAttsCount, nodeInfo);      break;  case eInDocumentElement:      rv = OpenTag(aAtts, aAttsCount, aLineNumber, nodeInfo);      break;  case eInEpilog:  case eInScript:      PR_LOG(gLog, PR_LOG_ALWAYS,             ("xul: warning: unexpected tags in epilog at line %d",             aLineNumber));      rv = NS_ERROR_UNEXPECTED; // XXX      break;  }  return rv;}