rv = NS_NewHTMLTableSectionElement(getter_AddRefs(newFoot),nsHTMLAtoms::tfoot);
nsCOMPtr<nsINodeInfo> nodeInfo; mInner.mNodeInfo->NameChanged(nsHTMLAtoms::tfoot, *getter_AddRefs(nodeInfo));  rv = NS_NewHTMLTableSectionElement(getter_AddRefs(newFoot),nodeInfo);
nsHTMLTableElement::CreateTFoot(nsIDOMHTMLElement** aValue){  *aValue = nsnull;  nsresult rv = NS_OK;  nsCOMPtr<nsIDOMHTMLTableSectionElement> foot;  GetTFoot(getter_AddRefs(foot));  if (nsnull!=foot)  { // return the existing tfoot    foot->QueryInterface(kIDOMHTMLElementIID, (void **)aValue);  // caller's addref    NS_ASSERTION(nsnull!=*aValue, "foot must be a DOMHTMLElement");  }  else  { // create a new foot rowgroup    nsCOMPtr<nsIHTMLContent> newFoot;    rv = NS_NewHTMLTableSectionElement(getter_AddRefs(newFoot),nsHTMLAtoms::tfoot);    if (NS_SUCCEEDED(rv) && newFoot)    {      rv = mInner.AppendChildTo(newFoot, PR_TRUE);      newFoot->QueryInterface(kIDOMHTMLElementIID, (void **)aValue); // caller's addref    }  }  return NS_OK;}