зеркало из https://github.com/mozilla/gecko-dev.git
Bug 1354443 part.4 nsPrintData should guarantee that object which has nsIWebProgressListener interface won't be released during calling a method of it r=dholbert
Although, this should be rewritten with range-based for loop, this patch just making them use nsCOMPtr to refer the objects. MozReview-Commit-ID: IJBWs8CTyCF
This commit is contained in:
Родитель
4a6eeab901
Коммит
d11d55f55f
|
@ -108,11 +108,17 @@ nsPrintData::DoOnProgressChange(int32_t aProgress,
|
|||
bool aDoStartStop,
|
||||
int32_t aFlag)
|
||||
{
|
||||
for (int32_t i=0;i<mPrintProgressListeners.Count();i++) {
|
||||
nsIWebProgressListener* wpl = mPrintProgressListeners.ObjectAt(i);
|
||||
wpl->OnProgressChange(nullptr, nullptr, aProgress, aMaxProgress, aProgress, aMaxProgress);
|
||||
size_t numberOfListeners = mPrintProgressListeners.Length();
|
||||
for (size_t i = 0; i < numberOfListeners; ++i) {
|
||||
nsCOMPtr<nsIWebProgressListener> listener =
|
||||
mPrintProgressListeners.SafeElementAt(i);
|
||||
if (NS_WARN_IF(!listener)) {
|
||||
continue;
|
||||
}
|
||||
listener->OnProgressChange(nullptr, nullptr, aProgress, aMaxProgress,
|
||||
aProgress, aMaxProgress);
|
||||
if (aDoStartStop) {
|
||||
wpl->OnStateChange(nullptr, nullptr, aFlag, NS_OK);
|
||||
listener->OnStateChange(nullptr, nullptr, aFlag, NS_OK);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -120,12 +126,14 @@ nsPrintData::DoOnProgressChange(int32_t aProgress,
|
|||
void
|
||||
nsPrintData::DoOnStatusChange(nsresult aStatus)
|
||||
{
|
||||
uint32_t numberOfListeners = mPrintProgressListeners.Length();
|
||||
for (uint32_t i = 0; i < numberOfListeners; ++i) {
|
||||
nsIWebProgressListener* listener = mPrintProgressListeners.SafeElementAt(i);
|
||||
if (listener) {
|
||||
listener->OnStatusChange(nullptr, nullptr, aStatus, nullptr);
|
||||
size_t numberOfListeners = mPrintProgressListeners.Length();
|
||||
for (size_t i = 0; i < numberOfListeners; ++i) {
|
||||
nsCOMPtr<nsIWebProgressListener> listener =
|
||||
mPrintProgressListeners.SafeElementAt(i);
|
||||
if (NS_WARN_IF(!listener)) {
|
||||
continue;
|
||||
}
|
||||
listener->OnStatusChange(nullptr, nullptr, aStatus, nullptr);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Загрузка…
Ссылка в новой задаче