Bug 958684 - Fix AsyncErrorReporter leak in Promises. r=mccr8

This commit is contained in:
Nikhil Marathe 2014-01-10 14:07:46 -08:00
Родитель f766dd3c2d
Коммит 97292b87fc
1 изменённых файлов: 6 добавлений и 2 удалений

Просмотреть файл

@ -561,12 +561,16 @@ Promise::MaybeReportRejected()
}
// Now post an event to do the real reporting async
NS_DispatchToMainThread(
// Since Promises preserve their wrapper, it is essential to nsRefPtr<> the
// AsyncErrorReporter, otherwise if the call to DispatchToMainThread fails, it
// will leak. See Bug 958684.
nsRefPtr<AsyncErrorReporter> r =
new AsyncErrorReporter(JS_GetObjectRuntime(&mResult.toObject()),
report,
nullptr,
isChromeError,
win));
win);
NS_DispatchToMainThread(r);
}
void