summaryrefslogtreecommitdiff
path: root/www-client/chromium/files/chromium-hashtable-iterator-cat-83.patch
blob: 777934c46b24e139d1d26fc9ae4c3dadd8c646d3 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
diff --git a/third_party/blink/renderer/bindings/core/v8/serialization/serialized_script_value.h b/third_party/blink/renderer/bindings/core/v8/serialization/serialized_script_value.h
index bbf10ef31..e5b627780 100644
--- a/third_party/blink/renderer/bindings/core/v8/serialization/serialized_script_value.h
+++ b/third_party/blink/renderer/bindings/core/v8/serialization/serialized_script_value.h
@@ -268,12 +268,14 @@ class CORE_EXPORT SerializedScriptValue
   MessagePortChannelArray& GetStreamChannels() { return stream_channels_; }
 
   bool IsLockedToAgentCluster() const {
-    return !wasm_modules_.IsEmpty() ||
-           !shared_array_buffers_contents_.IsEmpty() ||
-           std::any_of(attachments_.begin(), attachments_.end(),
-                       [](const auto& entry) {
-                         return entry.value->IsLockedToAgentCluster();
-                       });
+    bool ret = !wasm_modules_.IsEmpty() ||
+           !shared_array_buffers_contents_.IsEmpty();
+    if (ret) return true;
+    for (const auto& entry : attachments_) {
+      if (entry.value->IsLockedToAgentCluster())
+	    return true;
+    };
+	return false;
   }
 
   // Returns true after serializing script values that remote origins cannot
diff --git a/third_party/blink/renderer/platform/wtf/hash_table.h b/third_party/blink/renderer/platform/wtf/hash_table.h
index 1d195f121..1e65c08d8 100644
--- a/third_party/blink/renderer/platform/wtf/hash_table.h
+++ b/third_party/blink/renderer/platform/wtf/hash_table.h
@@ -272,7 +272,11 @@ class HashTableConstIterator final {
                                  Allocator>
       const_iterator;
   typedef Value ValueType;
+  using iterator_category = std::bidirectional_iterator_tag;
   using value_type = ValueType;
+  using reference = value_type&;
+  using pointer = value_type*;
+  using difference_type = ptrdiff_t;
   typedef typename Traits::IteratorConstGetType GetType;
   typedef const ValueType* PointerType;
 
@@ -540,6 +544,11 @@ class HashTableIterator final {
   std::ostream& PrintTo(std::ostream& stream) const {
     return iterator_.PrintTo(stream);
   }
+  using iterator_category = std::bidirectional_iterator_tag;
+  using value_type = ValueType;
+  using reference = value_type&;
+  using pointer = value_type*;
+  using difference_type = ptrdiff_t;
 
  private:
   const_iterator iterator_;
@@ -2230,6 +2239,11 @@ struct HashTableConstIteratorAdapter {
   }
   // postfix -- intentionally omitted
   typename HashTableType::const_iterator impl_;
+  using iterator_category = std::bidirectional_iterator_tag;
+  using value_type = GetType*;
+  using reference = value_type&;
+  using pointer = value_type*;
+  using difference_type = ptrdiff_t;
 };
 
 template <typename HashTable, typename Traits>