зеркало из https://github.com/mozilla/gecko-dev.git
Bug 878325 - Propagate exceptions out of ResolveForwardReferences. r=bz
This commit is contained in:
Родитель
ab79ce5794
Коммит
9a052f73b0
|
@ -1171,6 +1171,7 @@ XULDocument::ResolveForwardReferences()
|
|||
// guaranteed to converge because we've "closed the gate" to new
|
||||
// forward references.
|
||||
|
||||
nsresult rv = NS_OK;
|
||||
const nsForwardReference::Phase* pass = nsForwardReference::kPasses;
|
||||
while ((mResolutionPhase = *pass) != nsForwardReference::eDone) {
|
||||
uint32_t previous = 0;
|
||||
|
@ -1185,8 +1186,10 @@ XULDocument::ResolveForwardReferences()
|
|||
nsForwardReference::Result result = fwdref->Resolve();
|
||||
|
||||
switch (result) {
|
||||
case nsForwardReference::eResolve_Succeeded:
|
||||
case nsForwardReference::eResolve_Error:
|
||||
rv = NS_ERROR_FAILURE;
|
||||
// Fall through.
|
||||
case nsForwardReference::eResolve_Succeeded:
|
||||
mForwardReferences.RemoveElementAt(i);
|
||||
|
||||
// fixup because we removed from list
|
||||
|
@ -1202,7 +1205,7 @@ XULDocument::ResolveForwardReferences()
|
|||
// Resolve() loaded a dynamic overlay,
|
||||
// (see XULDocument::LoadOverlayInternal()).
|
||||
// Return for now, we will be called again.
|
||||
return NS_OK;
|
||||
return rv;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -1212,7 +1215,7 @@ XULDocument::ResolveForwardReferences()
|
|||
}
|
||||
|
||||
mForwardReferences.Clear();
|
||||
return NS_OK;
|
||||
return rv;
|
||||
}
|
||||
|
||||
NS_IMETHODIMP
|
||||
|
|
Загрузка…
Ссылка в новой задаче