nsresult SetAttr(PRInt32 aNameSpaceID, nsIAtom* aName, const nsAString& aValue, PRBool aNotify) { return SetAttr(aNameSpaceID, aName, nsnull, aValue, aNotify);
nsXULElement::SetAttr(nsINodeInfo* aNodeInfo, const nsAReadableString& aValue, PRBool aNotify) { NS_ASSERTION(nsnull != aNodeInfo, "must have attribute nodeinfo"); if (nsnull == aNodeInfo) return NS_ERROR_NULL_POINTER;  nsresult rv;  #if DEBUG_smfr nsXULAttribute* theAttr = FindLocalAttribute(aNodeInfo); if (theAttr) { nsAutoString  oldValue; attr->GetValue(oldValue); if (oldValue.Equals(aValue)) { nsAutoString  attributeName; aNodeInfo->GetName(attributeName);  nsCAutoString blurb("SetAttr called redundantly on "); blurb.AppendWithConversion(attributeName); blurb.Append(" with value "); blurb.AppendWithConversion(aValue); NS_WARNING(blurb.get()); }
    nsresult SetAttr(PRInt32 aNameSpaceID, nsIAtom* aName,                     const nsAString& aValue, PRBool aNotify)    {      return SetAttr(aNameSpaceID, aName, nsnull, aValue, aNotify);    }