commit
cd337ce0ad
@ -1,30 +0,0 @@
|
|||||||
From 00f47df999c9b19e80fdc01db0ae9ca1b6a12b3a Mon Sep 17 00:00:00 2001
|
|
||||||
From: vasilvv <vasilvv@google.com>
|
|
||||||
Date: Wed, 03 Apr 2019 13:58:53 -0700
|
|
||||||
Subject: [PATCH] GCC: do not delete move constructor of QuicStreamSendBuffer
|
|
||||||
|
|
||||||
QuicStreamSendBuffer constructor is implicitely required in the
|
|
||||||
initialization of the vector of substreams in QuicCryptoStream.
|
|
||||||
Though clang apparently ignores that, GCC fails to build.
|
|
||||||
|
|
||||||
BUG=chromium:819294
|
|
||||||
|
|
||||||
Originally submitted by José Dapena Paz <jose.dapena@lge.com> at https://quiche-review.googlesource.com/c/quiche/+/2420
|
|
||||||
|
|
||||||
PiperOrigin-RevId: 241800134
|
|
||||||
Change-Id: I4e3c97d6e5895d85340e8c1b740e6196d9104066
|
|
||||||
---
|
|
||||||
|
|
||||||
diff --git a/net/third_party/quiche/src/quic/core/quic_stream_send_buffer.h b/net/third_party/quiche/src/quic/core/quic_stream_send_buffer.h
|
|
||||||
index e34514b..74e9d0d 100644
|
|
||||||
--- a/net/third_party/quiche/src/quic/core/quic_stream_send_buffer.h
|
|
||||||
+++ b/net/third_party/quiche/src/quic/core/quic_stream_send_buffer.h
|
|
||||||
@@ -62,7 +62,7 @@
|
|
||||||
public:
|
|
||||||
explicit QuicStreamSendBuffer(QuicBufferAllocator* allocator);
|
|
||||||
QuicStreamSendBuffer(const QuicStreamSendBuffer& other) = delete;
|
|
||||||
- QuicStreamSendBuffer(QuicStreamSendBuffer&& other) = delete;
|
|
||||||
+ QuicStreamSendBuffer(QuicStreamSendBuffer&& other) = default;
|
|
||||||
~QuicStreamSendBuffer();
|
|
||||||
|
|
||||||
// Save |data_length| of data starts at |iov_offset| in |iov| to send buffer.
|
|
@ -1,45 +0,0 @@
|
|||||||
diff -up chromium-83.0.4103.97/third_party/skia/include/private/SkVx.h.gcc10-aarch64-hack chromium-83.0.4103.97/third_party/skia/include/private/SkVx.h
|
|
||||||
--- chromium-83.0.4103.97/third_party/skia/include/private/SkVx.h.gcc10-aarch64-hack 2020-06-18 14:47:30.912177044 +0000
|
|
||||||
+++ chromium-83.0.4103.97/third_party/skia/include/private/SkVx.h 2020-06-18 14:51:08.230506417 +0000
|
|
||||||
@@ -141,6 +141,15 @@ static inline D bit_pun(const S& s) {
|
|
||||||
return d;
|
|
||||||
}
|
|
||||||
|
|
||||||
+// This is a hack to work around GCC PR95726
|
|
||||||
+template <typename D, typename S>
|
|
||||||
+static inline D bit_pun2(const S& s) {
|
|
||||||
+ static_assert(sizeof(D) == sizeof(S), "");
|
|
||||||
+ D d;
|
|
||||||
+ memcpy(&d, &s, sizeof(D));
|
|
||||||
+ return d;
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
// Translate from a value type T to its corresponding Mask, the result of a comparison.
|
|
||||||
template <typename T> struct Mask { using type = T; };
|
|
||||||
template <> struct Mask<float > { using type = int32_t; };
|
|
||||||
@@ -554,9 +563,9 @@ static inline Vec<N,uint8_t> approx_scal
|
|
||||||
static inline Vec<4,float> if_then_else(const Vec<4,int >& c,
|
|
||||||
const Vec<4,float>& t,
|
|
||||||
const Vec<4,float>& e) {
|
|
||||||
- return bit_pun<Vec<4,float>>(vbslq_f32(bit_pun<uint32x4_t> (c),
|
|
||||||
- bit_pun<float32x4_t>(t),
|
|
||||||
- bit_pun<float32x4_t>(e)));
|
|
||||||
+ return bit_pun<Vec<4,float>>(vbslq_f32(bit_pun2<uint32x4_t> (c),
|
|
||||||
+ bit_pun2<float32x4_t>(t),
|
|
||||||
+ bit_pun2<float32x4_t>(e)));
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
@@ -581,9 +590,9 @@ static inline Vec<N,uint8_t> approx_scal
|
|
||||||
const Vec<4,float>& y,
|
|
||||||
const Vec<4,float>& z) {
|
|
||||||
// These instructions tend to work like z += xy, so the order here is z,x,y.
|
|
||||||
- return bit_pun<Vec<4,float>>(vfmaq_f32(bit_pun<float32x4_t>(z),
|
|
||||||
- bit_pun<float32x4_t>(x),
|
|
||||||
- bit_pun<float32x4_t>(y)));
|
|
||||||
+ return bit_pun<Vec<4,float>>(vfmaq_f32(bit_pun2<float32x4_t>(z),
|
|
||||||
+ bit_pun2<float32x4_t>(x),
|
|
||||||
+ bit_pun2<float32x4_t>(y)));
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
@ -1,30 +0,0 @@
|
|||||||
diff -up chromium-85.0.4183.102/net/cookies/cookie_monster.cc.fixme chromium-85.0.4183.102/net/cookies/cookie_monster.cc
|
|
||||||
--- chromium-85.0.4183.102/net/cookies/cookie_monster.cc.fixme 2020-09-21 14:52:06.606722391 -0400
|
|
||||||
+++ chromium-85.0.4183.102/net/cookies/cookie_monster.cc 2020-09-21 14:53:40.247366159 -0400
|
|
||||||
@@ -1151,9 +1151,14 @@ CookieMonster::CookieMap::iterator Cooki
|
|
||||||
// |num_keys_| counter.
|
|
||||||
bool different_prev =
|
|
||||||
inserted == cookies_.begin() || std::prev(inserted)->first != key;
|
|
||||||
- bool different_next =
|
|
||||||
- inserted == cookies_.end() || std::next(inserted)->first != key;
|
|
||||||
- if (different_prev && different_next)
|
|
||||||
+ // According to std::multiqueue documentation:
|
|
||||||
+ // "If the container has elements with equivalent key, inserts at the upper
|
|
||||||
+ // bound of that range. (since C++11)"
|
|
||||||
+ // This means that "inserted" iterator either points to the last element in
|
|
||||||
+ // the map, or the element succeeding it has to have different key.
|
|
||||||
+ DCHECK(std::next(inserted) == cookies_.end() ||
|
|
||||||
+ std::next(inserted)->first != key);
|
|
||||||
+ if (different_prev)
|
|
||||||
++num_keys_;
|
|
||||||
|
|
||||||
return inserted;
|
|
||||||
@@ -1373,7 +1378,7 @@ void CookieMonster::InternalDeleteCookie
|
|
||||||
bool different_prev =
|
|
||||||
it == cookies_.begin() || std::prev(it)->first != it->first;
|
|
||||||
bool different_next =
|
|
||||||
- it == cookies_.end() || std::next(it)->first != it->first;
|
|
||||||
+ std::next(it) == cookies_.end() || std::next(it)->first != it->first;
|
|
||||||
if (different_prev && different_next)
|
|
||||||
--num_keys_;
|
|
||||||
|
|
@ -1,31 +0,0 @@
|
|||||||
From 2879a6ba43b65c33e3c02432b4ae7a7462d24096 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Stephan Hartmann <stha09@googlemail.com>
|
|
||||||
Date: Fri, 28 Aug 2020 07:23:29 +0000
|
|
||||||
Subject: [PATCH] GCC: fix ImageMemoryBarrierData initialization
|
|
||||||
|
|
||||||
GCC can't convert constant string to char[40]. Use const char * instead.
|
|
||||||
Otherwise fails like this:
|
|
||||||
|
|
||||||
src/libANGLE/renderer/vulkan/vk_helpers.cpp:121:1: error: could not convert
|
|
||||||
'...' from '<brace-enclosed initializer list>' to
|
|
||||||
'const angle::PackedEnumMap<rx::vk::ImageLayout, rx::vk::{anonymous}::ImageMemoryBarrierData>'
|
|
||||||
---
|
|
||||||
third_party/angle/src/libANGLE/renderer/vulkan/vk_helpers.cpp | 2 +-
|
|
||||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
|
||||||
|
|
||||||
diff --git a/third_party/angle/src/libANGLE/renderer/vulkan/vk_helpers.cpp b/third_party/angle/src/libANGLE/renderer/vulkan/vk_helpers.cpp
|
|
||||||
index af957d7..7fe82ae 100644
|
|
||||||
--- a/third_party/angle/src/libANGLE/renderer/vulkan/vk_helpers.cpp
|
|
||||||
+++ b/third_party/angle/src/libANGLE/renderer/vulkan/vk_helpers.cpp
|
|
||||||
@@ -73,7 +73,7 @@ enum BarrierType
|
|
||||||
|
|
||||||
struct ImageMemoryBarrierData
|
|
||||||
{
|
|
||||||
- char name[40];
|
|
||||||
+ const char *name;
|
|
||||||
|
|
||||||
// The Vk layout corresponding to the ImageLayout key.
|
|
||||||
VkImageLayout layout;
|
|
||||||
--
|
|
||||||
2.26.2
|
|
||||||
|
|
@ -1,25 +0,0 @@
|
|||||||
From 849e5c6b3a8746d9205102bd3df4e140cead405a Mon Sep 17 00:00:00 2001
|
|
||||||
From: Stephan Hartmann <stha09@googlemail.com>
|
|
||||||
Date: Sat, 18 Jul 2020 15:11:13 +0000
|
|
||||||
Subject: [PATCH] GCC: remove explicit from AtomicReference constructor
|
|
||||||
|
|
||||||
---
|
|
||||||
.../nearby/src/cpp/platform_v2/public/atomic_reference.h | 2 +-
|
|
||||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
|
||||||
|
|
||||||
diff --git a/third_party/nearby/src/cpp/platform_v2/public/atomic_reference.h b/third_party/nearby/src/cpp/platform_v2/public/atomic_reference.h
|
|
||||||
index 5742724..bbb8c01 100644
|
|
||||||
--- a/third_party/nearby/src/cpp/platform_v2/public/atomic_reference.h
|
|
||||||
+++ b/third_party/nearby/src/cpp/platform_v2/public/atomic_reference.h
|
|
||||||
@@ -37,7 +37,7 @@ class AtomicReference<T, std::enable_if_t<sizeof(T) <= sizeof(std::uint32_t) &&
|
|
||||||
final {
|
|
||||||
public:
|
|
||||||
using Platform = api::ImplementationPlatform;
|
|
||||||
- explicit AtomicReference(T value)
|
|
||||||
+ AtomicReference(T value)
|
|
||||||
: impl_(Platform::CreateAtomicUint32(static_cast<std::uint32_t>(value))) {
|
|
||||||
}
|
|
||||||
~AtomicReference() = default;
|
|
||||||
--
|
|
||||||
2.26.2
|
|
||||||
|
|
@ -1,24 +0,0 @@
|
|||||||
From a5b2ee9dd7dfb186e26ec6c0c06c2ae1a9d27195 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Stephan Hartmann <stha09@googlemail.com>
|
|
||||||
Date: Sat, 18 Jul 2020 14:15:50 +0000
|
|
||||||
Subject: [PATCH] IWYU: memcpy is defined in cstring
|
|
||||||
|
|
||||||
---
|
|
||||||
third_party/nearby/src/cpp/platform_v2/base/byte_array.h | 1 +
|
|
||||||
1 file changed, 1 insertion(+)
|
|
||||||
|
|
||||||
diff --git a/third_party/nearby/src/cpp/platform_v2/base/byte_array.h b/third_party/nearby/src/cpp/platform_v2/base/byte_array.h
|
|
||||||
index ee5d0eb..4b1d79b 100644
|
|
||||||
--- a/third_party/nearby/src/cpp/platform_v2/base/byte_array.h
|
|
||||||
+++ b/third_party/nearby/src/cpp/platform_v2/base/byte_array.h
|
|
||||||
@@ -17,6 +17,7 @@
|
|
||||||
|
|
||||||
#include <array>
|
|
||||||
#include <cstdint>
|
|
||||||
+#include <cstring>
|
|
||||||
#include <string>
|
|
||||||
#include <type_traits>
|
|
||||||
#include <utility>
|
|
||||||
--
|
|
||||||
2.26.2
|
|
||||||
|
|
@ -0,0 +1,22 @@
|
|||||||
|
Bug: https://bugs.gentoo.org/750038
|
||||||
|
Upstream bug: https://crbug.com/1135070
|
||||||
|
|
||||||
|
--- a/content/browser/service_worker/service_worker_container_host.cc
|
||||||
|
+++ b/content/browser/service_worker/service_worker_container_host.cc
|
||||||
|
@@ -626,6 +626,16 @@
|
||||||
|
int64_t registration_id) {
|
||||||
|
DCHECK_CURRENTLY_ON(ServiceWorkerContext::GetCoreThreadId());
|
||||||
|
DCHECK(base::Contains(registration_object_hosts_, registration_id));
|
||||||
|
+
|
||||||
|
+ // ServiceWorkerRegistrationObjectHost to be deleted may have the last reference to
|
||||||
|
+ // ServiceWorkerRegistration that indirectly owns this ServiceWorkerContainerHost.
|
||||||
|
+ // If we erase the object host directly from the map, |this| could be deleted
|
||||||
|
+ // during the map operation and may crash. To avoid the case, we take the
|
||||||
|
+ // ownership of the object host from the map first, and then erase the entry
|
||||||
|
+ // from the map. See https://crbug.com/1135070 for details.
|
||||||
|
+ std::unique_ptr<ServiceWorkerRegistrationObjectHost> to_be_deleted =
|
||||||
|
+ std::move(registration_object_hosts_[registration_id]);
|
||||||
|
+ DCHECK(to_be_deleted);
|
||||||
|
registration_object_hosts_.erase(registration_id);
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,39 @@
|
|||||||
|
From 4f4604877f3b666ac7a373ae443e3c3795424569 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Stephan Hartmann <stha09@googlemail.com>
|
||||||
|
Date: Fri, 6 Nov 2020 11:18:42 +0000
|
||||||
|
Subject: [PATCH] GCC: fix attribute on function definition
|
||||||
|
|
||||||
|
GCC does not accept attributes at the end for function definitions.
|
||||||
|
Solution is to move it before function name. Otherwise GCC fails like
|
||||||
|
this:
|
||||||
|
|
||||||
|
../../base/compiler_specific.h:97:28: error: attributes are not allowed
|
||||||
|
on a function-definition
|
||||||
|
97 | #define WARN_UNUSED_RESULT __attribute__((warn_unused_result))
|
||||||
|
| ^~~~~~~~~~~~~
|
||||||
|
../../media/gpu/vaapi/vaapi_wrapper.h:322:36: note: in
|
||||||
|
expansion of macro 'WARN_UNUSED_RESULT'
|
||||||
|
322 | const T* data) WARN_UNUSED_RESULT {
|
||||||
|
| ^~~~~~~~~~~~~~~~~~
|
||||||
|
---
|
||||||
|
media/gpu/vaapi/vaapi_wrapper.h | 4 ++--
|
||||||
|
1 file changed, 2 insertions(+), 2 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/media/gpu/vaapi/vaapi_wrapper.h b/media/gpu/vaapi/vaapi_wrapper.h
|
||||||
|
index fd1fd82..deeda1f 100644
|
||||||
|
--- a/media/gpu/vaapi/vaapi_wrapper.h
|
||||||
|
+++ b/media/gpu/vaapi/vaapi_wrapper.h
|
||||||
|
@@ -318,8 +318,8 @@ class MEDIA_GPU_EXPORT VaapiWrapper
|
||||||
|
// Convenient templatized version of SubmitBuffer() where |size| is deduced to
|
||||||
|
// be the size of the type of |*data|.
|
||||||
|
template <typename T>
|
||||||
|
- bool SubmitBuffer(VABufferType va_buffer_type,
|
||||||
|
- const T* data) WARN_UNUSED_RESULT {
|
||||||
|
+ bool WARN_UNUSED_RESULT SubmitBuffer(VABufferType va_buffer_type,
|
||||||
|
+ const T* data) {
|
||||||
|
return SubmitBuffer(va_buffer_type, sizeof(T), data);
|
||||||
|
}
|
||||||
|
// Batch-version of SubmitBuffer(), where the lock for accessing libva is
|
||||||
|
--
|
||||||
|
2.26.2
|
||||||
|
|
Loading…
Reference in new issue