Commit 88533895 authored by Olli.Pettay@helsinki.fi's avatar Olli.Pettay@helsinki.fi
Browse files

Bug 386914, r+sr=jst

parent fdbd0685
Loading
Loading
Loading
Loading
+17 −12
Original line number Diff line number Diff line
@@ -953,7 +953,9 @@ nsXULDocument::AttributeChanged(nsIDocument* aDocument,
            nsAutoString value;
            PRBool attrSet = aElement->GetAttr(kNameSpaceID_None, aAttribute, value);

            for (PRInt32 i = entry->mListeners.Count() - 1; i >= 0; --i) {
            nsCOMArray<nsIContent> listenerArray;
            PRInt32 i;
            for (i = entry->mListeners.Count() - 1; i >= 0; --i) {
                BroadcastListener* bl =
                    NS_STATIC_CAST(BroadcastListener*, entry->mListeners[i]);

@@ -961,7 +963,12 @@ nsXULDocument::AttributeChanged(nsIDocument* aDocument,
                    (bl->mAttribute == nsGkAtoms::_asterix)) {
                    nsCOMPtr<nsIContent> listener
                        = do_QueryInterface(bl->mListener);
                    listenerArray.AppendObject(listener);
                }
            }

            for (i = 0; i < listenerArray.Count(); ++i) {
                nsIContent* listener = listenerArray[i];
                if (attrSet) {
                    listener->SetAttr(kNameSpaceID_None, aAttribute, value,
                                      PR_TRUE);
@@ -970,10 +977,8 @@ nsXULDocument::AttributeChanged(nsIDocument* aDocument,
                    listener->UnsetAttr(kNameSpaceID_None, aAttribute,
                                        PR_TRUE);
                }

                    ExecuteOnBroadcastHandlerFor(aElement, bl->mListener,
                                                 aAttribute);
                }
                nsCOMPtr<nsIDOMElement> listenerEl = do_QueryInterface(listener);
                ExecuteOnBroadcastHandlerFor(aElement, listenerEl, aAttribute);
            }
        }
    }