nsCOMPtr<nsIAtom> atom = dont_AddRef(NS_NewAtom(Substring(first, iter)));
nsCOMPtr<nsIAtom> atom = do_GetAtom(Substring(first, iter));
nsXULTreeBuilder::TokenizeProperties(const nsAString& aString,                                         nsISupportsArray* aProperties){    NS_PRECONDITION(aProperties != nsnull, "null ptr");    if (! aProperties)        return NS_ERROR_NULL_POINTER;    nsAString::const_iterator end;    aString.EndReading(end);    nsAString::const_iterator iter;    aString.BeginReading(iter);    do {        // Skip whitespace        while (iter != end && nsCRT::IsAsciiSpace(*iter))            ++iter;        // If only whitespace, we're done        if (iter == end)            break;        // Note the first non-whitespace character        nsAString::const_iterator first = iter;        // Advance to the next whitespace character        while (iter != end && ! nsCRT::IsAsciiSpace(*iter))            ++iter;        // XXX this would be nonsensical        NS_ASSERTION(iter != first, "eh? something's wrong here");        if (iter == first)            break;        nsCOMPtr<nsIAtom> atom = dont_AddRef(NS_NewAtom(Substring(first, iter)));        aProperties->AppendElement(atom);    } while (iter != end);    return NS_OK;}