Send patches - preferably formatted by git format-patch - to patches at archlinux32 dot org.
summaryrefslogtreecommitdiff
path: root/extra/protobuf/fix_static_assert_fail_on_32bit.patch
blob: d1ea6f516ca0d87efda8023ef1919d2a1e935b6f (plain)
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
--- a/src/google/protobuf/repeated_field.h	2022-12-13 02:03:12.000000000 +0200
+++ b/src/google/protobuf/repeated_field.h	2023-02-13 16:30:24.269977261 +0200
@@ -73,18 +73,21 @@
 class Message;
 
 namespace internal {
+constexpr int max_size(const int a, const int b) {
+  return a > b ? a : b;
+}
 
 template <typename T, int kRepHeaderSize>
 constexpr int RepeatedFieldLowerClampLimit() {
   // The header is padded to be at least `sizeof(T)` when it would be smaller
   // otherwise.
-  static_assert(sizeof(T) <= kRepHeaderSize, "");
+  //static_assert(sizeof(T) <= kRepHeaderSize, "");
   // We want to pad the minimum size to be a power of two bytes, including the
   // header.
   // The first allocation is kRepHeaderSize bytes worth of elements for a total
   // of 2*kRepHeaderSize bytes.
   // For an 8-byte header, we allocate 8 bool, 2 ints, or 1 int64.
-  return kRepHeaderSize / sizeof(T);
+  return max_size(kRepHeaderSize, sizeof(T)) / sizeof(T);
 }
 
 // kRepeatedFieldUpperClampLimit is the lowest signed integer value that