rv = EnsureCell(aTreeItemElement, index, getter_AddRefs(cellElement));
rv = EnsureCell(treerow, index, getter_AddRefs(cellElement));
RDFTreeBuilderImpl::UnsetWidgetAttribute(nsIContent* aTreeItemElement,                                         nsIRDFResource* aProperty,                                         nsIRDFNode* aValue){    nsresult rv;    PRInt32 index;    if (NS_SUCCEEDED(rv = GetColumnForProperty(mRoot, aProperty, &index))) {        // it's a cell. find it.        nsCOMPtr<nsIContent> cellElement;        rv = EnsureCell(aTreeItemElement, index, getter_AddRefs(cellElement));        NS_ASSERTION(NS_SUCCEEDED(rv), "unable to ensure cell exists");        if (NS_FAILED(rv)) return rv;        // find the text element        nsCOMPtr<nsITextContent> text;        rv = FindTextElement(cellElement, getter_AddRefs(text));        if (NS_FAILED(rv)) return rv;        if (text) {            rv = text->SetText(nsAutoString().GetUnicode(), 0, PR_TRUE);        }        else {            rv = NS_OK; // It was never there. nothing to unset!        }        if (NS_FAILED(rv)) return rv;    }    // no matter what, it's also been created as an attribute.    PRInt32 nameSpaceID;    nsCOMPtr<nsIAtom> tagAtom;    rv = mDocument->SplitProperty(aProperty, &nameSpaceID, getter_AddRefs(tagAtom));    if (NS_FAILED(rv)) return rv;    rv = aTreeItemElement->UnsetAttribute(nameSpaceID, tagAtom, PR_TRUE);    if (NS_FAILED(rv)) return rv;    return NS_OK;}