diff options
author | Allan Sandfeld Jensen <allan.jensen@qt.io> | 2020-01-27 15:54:48 +0100 |
---|---|---|
committer | Allan Sandfeld Jensen <allan.jensen@qt.io> | 2020-01-30 12:49:13 +0000 |
commit | 52d3b56298fe498be2dcd225d702e97756610cc2 (patch) | |
tree | 82085b845d047e3ab1ef03e73c4b553e5b044e04 | |
parent | 3a2c9c2c40e5ff7fbdee8cebfa72087d6b885c1a (diff) | |
download | qtwebengine-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.cc | 5 | ||||
-rw-r--r-- | chromium/v8/src/torque/type-oracle.cc | 5 |
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(); } } |