diff --git a/content/base/src/nsDocument.cpp b/content/base/src/nsDocument.cpp index 1298523beff8..03a2adbd9a0b 100644 --- a/content/base/src/nsDocument.cpp +++ b/content/base/src/nsDocument.cpp @@ -338,7 +338,10 @@ void nsDocument::AddStyleSheet(nsIStyleSheet* aSheet) // that it has a live reference to the document. void nsDocument::AddObserver(nsIDocumentObserver* aObserver) { - mObservers.AppendElement(aObserver); + // XXX Make sure the observer isn't already in the list + if (mObservers.IndexOf(aObserver) == -1) { + mObservers.AppendElement(aObserver); + } } PRBool nsDocument::RemoveObserver(nsIDocumentObserver* aObserver) diff --git a/layout/base/src/nsDocument.cpp b/layout/base/src/nsDocument.cpp index 1298523beff8..03a2adbd9a0b 100644 --- a/layout/base/src/nsDocument.cpp +++ b/layout/base/src/nsDocument.cpp @@ -338,7 +338,10 @@ void nsDocument::AddStyleSheet(nsIStyleSheet* aSheet) // that it has a live reference to the document. void nsDocument::AddObserver(nsIDocumentObserver* aObserver) { - mObservers.AppendElement(aObserver); + // XXX Make sure the observer isn't already in the list + if (mObservers.IndexOf(aObserver) == -1) { + mObservers.AppendElement(aObserver); + } } PRBool nsDocument::RemoveObserver(nsIDocumentObserver* aObserver)