summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAllan Sandfeld Jensen <allan.jensen@qt.io>2020-01-27 15:54:48 +0100
committerAllan Sandfeld Jensen <allan.jensen@qt.io>2020-01-30 12:49:13 +0000
commit52d3b56298fe498be2dcd225d702e97756610cc2 (patch)
tree82085b845d047e3ab1ef03e73c4b553e5b044e04
parent3a2c9c2c40e5ff7fbdee8cebfa72087d6b885c1a (diff)
downloadqtwebengine-chromium-52d3b56298fe498be2dcd225d702e97756610cc2.tar.gz
Fix undefined range-based for loops in torque
Range-based for is undefined if the container is modified while being iterated over. Detected by MSVC. Change-Id: Id5e530160cd30bb3e0c7ec24837bd4db60d1795b Reviewed-by: Michael BrĂ¼ning <michael.bruning@qt.io>
-rw-r--r--chromium/v8/src/torque/declaration-visitor.cc5
-rw-r--r--chromium/v8/src/torque/type-oracle.cc5
2 files changed, 6 insertions, 4 deletions
diff --git a/chromium/v8/src/torque/declaration-visitor.cc b/chromium/v8/src/torque/declaration-visitor.cc
index c2fa1af98e8..2bc090ae6ee 100644
--- a/chromium/v8/src/torque/declaration-visitor.cc
+++ b/chromium/v8/src/torque/declaration-visitor.cc
@@ -347,8 +347,9 @@ Callable* DeclarationVisitor::Specialize(
}
void PredeclarationVisitor::ResolvePredeclarations() {
- for (auto& p : GlobalContext::AllDeclarables()) {
- if (const TypeAlias* alias = TypeAlias::DynamicCast(p.get())) {
+ auto it = GlobalContext::AllDeclarables().begin();
+ for (; it != GlobalContext::AllDeclarables().end(); ++it) {
+ if (const TypeAlias* alias = TypeAlias::DynamicCast(it->get())) {
CurrentScope::Scope scope_activator(alias->ParentScope());
CurrentSourcePosition::Scope position_activator(alias->Position());
alias->Resolve();
diff --git a/chromium/v8/src/torque/type-oracle.cc b/chromium/v8/src/torque/type-oracle.cc
index c7e11c2165c..6fa1e8c893c 100644
--- a/chromium/v8/src/torque/type-oracle.cc
+++ b/chromium/v8/src/torque/type-oracle.cc
@@ -19,8 +19,9 @@ TypeOracle::GetAggregateTypes() {
// static
void TypeOracle::FinalizeAggregateTypes() {
- for (const std::unique_ptr<AggregateType>& p : Get().aggregate_types_) {
- p->Finalize();
+ auto it = Get().aggregate_types_.begin();
+ for (; it != Get().aggregate_types_.end(); ++it) {
+ (*it)->Finalize();
}
}