PR_LOG(gLog, PR_LOG_ALWAYS, ("xulcmd[%p] add     %p(events=%s targets=%s)", this, aElement, (const char*) nsCAutoString(aEvents), (const char*) nsCAutoString(aTargets)));
XULCommandDispatcherImpl::AddCommandUpdater(nsIDOMElement* aElement,                                            const nsString& aEvents,                                            const nsString& aTargets){    NS_PRECONDITION(aElement != nsnull, "null ptr");    if (! aElement)        return NS_ERROR_NULL_POINTER;    Updater* updater = mUpdaters;    Updater** link = &mUpdaters;    while (updater) {        if (updater->mElement == aElement) {            // If the updater was already in the list, then replace            // (?) the 'events' and 'targets' filters with the new            // specification.            updater->mEvents  = aEvents;            updater->mTargets = aTargets;            return NS_OK;        }        link = &(updater->mNext);        updater = updater->mNext;    }    // If we get here, this is a new updater. Append it to the list.    updater = new Updater(aElement, aEvents, aTargets);    if (! updater)        return NS_ERROR_OUT_OF_MEMORY;    *link = updater;    return NS_OK;}