child->GetTag(*getter_AddRefs(tag));
child->GetTag(getter_AddRefs(tag));
nsXULTreeBuilder::EnsureSortVariables(){    // Grovel through <treecols> kids to find the <treecol>    // with the sort attributes.    nsCOMPtr<nsIContent> treecols;     nsXULContentUtils::FindChildByTag(mRoot, kNameSpaceID_XUL, nsXULAtoms::treecols, getter_AddRefs(treecols));    if (!treecols)        return NS_OK;    PRInt32 count;    treecols->ChildCount(count);    for (PRInt32 i = 0; i < count; i++) {        nsCOMPtr<nsIContent> child;        treecols->ChildAt(i, *getter_AddRefs(child));        nsCOMPtr<nsIAtom> tag;        child->GetTag(*getter_AddRefs(tag));        if (tag == nsXULAtoms::treecol) {            nsAutoString sortActive;            child->GetAttr(kNameSpaceID_None, nsXULAtoms::sortActive, sortActive);            if (sortActive == NS_LITERAL_STRING("true")) {                nsAutoString sort;                child->GetAttr(kNameSpaceID_None, nsXULAtoms::sort, sort);                if (!sort.IsEmpty()) {                    mSortVariable = mRules.LookupSymbol(sort.get(), PR_TRUE);                    nsAutoString sortDirection;                    child->GetAttr(kNameSpaceID_None, nsXULAtoms::sortDirection, sortDirection);                    if (sortDirection == NS_LITERAL_STRING("ascending"))                        mSortDirection = eDirection_Ascending;                    else if (sortDirection == NS_LITERAL_STRING("descending"))                        mSortDirection = eDirection_Descending;                    else                        mSortDirection = eDirection_Natural;                }                break;            }        }    }    return NS_OK;}