Bug 386914, r+sr=jst

This commit is contained in:
Olli.Pettay@helsinki.fi 2007-07-06 01:01:44 -07:00
parent c741c6d138
commit 98f382ceb3

View File

@ -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,20 +963,23 @@ nsXULDocument::AttributeChanged(nsIDocument* aDocument,
(bl->mAttribute == nsGkAtoms::_asterix)) {
nsCOMPtr<nsIContent> listener
= do_QueryInterface(bl->mListener);
if (attrSet) {
listener->SetAttr(kNameSpaceID_None, aAttribute, value,
PR_TRUE);
}
else {
listener->UnsetAttr(kNameSpaceID_None, aAttribute,
PR_TRUE);
}
ExecuteOnBroadcastHandlerFor(aElement, bl->mListener,
aAttribute);
listenerArray.AppendObject(listener);
}
}
for (i = 0; i < listenerArray.Count(); ++i) {
nsIContent* listener = listenerArray[i];
if (attrSet) {
listener->SetAttr(kNameSpaceID_None, aAttribute, value,
PR_TRUE);
}
else {
listener->UnsetAttr(kNameSpaceID_None, aAttribute,
PR_TRUE);
}
nsCOMPtr<nsIDOMElement> listenerEl = do_QueryInterface(listener);
ExecuteOnBroadcastHandlerFor(aElement, listenerEl, aAttribute);
}
}
}