1
0
Files
nodejs-electron/chromium-98-EnumTable-crash.patch
Dominique Leuenberger 612fa607f8 Accepting request 962506 from devel:languages:javascript
- Update to version 17.1.2
  * https://github.com/electron/electron/releases/tag/v17.1.2
  * https://github.com/electron/electron/releases/tag/v17.1.1
  * https://github.com/electron/electron/releases/tag/v17.1.0
  * Added electron-17-breakpad-align-int-types.patch
  * Added chromium-98-compiler.patch
  * Added chromium-98-MiraclePtr-gcc-ice.patch
  * Added chromium-98-WaylandFrameManager-check.patch
  * Added chromium-98-EnumTable-crash.patch
  * Added chromium-ffmpeg-first-dts.patch
  * Added system-libdrm.patch
  * Removed chromium-94-ffmpeg-roll.patch
  * Removed chromium-95-compiler.patch
  * Removed chromium-96-CommandLine-include.patch
  * Removed chromium-96-DrmRenderNodePathFinder-include.patch
  * Removed chromium-96-RestrictedCookieManager-tuple.patch
  * Removed electron-16-node-fix-python3.10-import.patch
- Fix building with gcc-12
  * Added electron-16-fix-swiftshader-template.patch
  * Added electron-16-v8-missing-utility-include.patch
- Fix building on Fedora 36 and newer
- Updated ffmpeg patches

OBS-URL: https://build.opensuse.org/request/show/962506
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/nodejs-electron?expand=0&rev=20
2022-03-18 15:41:41 +00:00

77 lines
2.8 KiB
Diff

diff --git a/components/cast_channel/enum_table.h b/components/cast_channel/enum_table.h
index 842553a..89de703 100644
--- a/components/cast_channel/enum_table.h
+++ b/components/cast_channel/enum_table.h
@@ -8,6 +8,7 @@
#include <cstdint>
#include <cstring>
#include <ostream>
+#include <vector>
#include "base/check_op.h"
#include "base/notreached.h"
@@ -187,7 +188,6 @@ class
inline constexpr GenericEnumTableEntry(int32_t value);
inline constexpr GenericEnumTableEntry(int32_t value, base::StringPiece str);
- GenericEnumTableEntry(const GenericEnumTableEntry&) = delete;
GenericEnumTableEntry& operator=(const GenericEnumTableEntry&) = delete;
private:
@@ -253,7 +253,6 @@ class EnumTable {
constexpr Entry(E value, base::StringPiece str)
: GenericEnumTableEntry(static_cast<int32_t>(value), str) {}
- Entry(const Entry&) = delete;
Entry& operator=(const Entry&) = delete;
};
@@ -312,15 +311,14 @@ class EnumTable {
if (is_sorted_) {
const std::size_t index = static_cast<std::size_t>(value);
if (ANALYZER_ASSUME_TRUE(index < data_.size())) {
- const auto& entry = data_.begin()[index];
+ const auto& entry = data_[index];
if (ANALYZER_ASSUME_TRUE(entry.has_str()))
return entry.str();
}
return absl::nullopt;
}
return GenericEnumTableEntry::FindByValue(
- reinterpret_cast<const GenericEnumTableEntry*>(data_.begin()),
- data_.size(), static_cast<int32_t>(value));
+ &data_[0], data_.size(), static_cast<int32_t>(value));
}
// This overload of GetString is designed for cases where the argument is a
@@ -348,8 +346,7 @@ class EnumTable {
// enum value directly.
absl::optional<E> GetEnum(base::StringPiece str) const {
auto* entry = GenericEnumTableEntry::FindByString(
- reinterpret_cast<const GenericEnumTableEntry*>(data_.begin()),
- data_.size(), str);
+ &data_[0], data_.size(), str);
return entry ? static_cast<E>(entry->value) : absl::optional<E>();
}
@@ -364,7 +361,7 @@ class EnumTable {
// Align the data on a cache line boundary.
alignas(64)
#endif
- std::initializer_list<Entry> data_;
+ const std::vector<Entry> data_;
bool is_sorted_;
constexpr EnumTable(std::initializer_list<Entry> data, bool is_sorted)
@@ -376,8 +373,8 @@ class EnumTable {
for (std::size_t i = 0; i < data.size(); i++) {
for (std::size_t j = i + 1; j < data.size(); j++) {
- const Entry& ei = data.begin()[i];
- const Entry& ej = data.begin()[j];
+ const Entry& ei = data[i];
+ const Entry& ej = data[j];
DCHECK(ei.value != ej.value)
<< "Found duplicate enum values at indices " << i << " and " << j;
DCHECK(!(ei.has_str() && ej.has_str() && ei.str() == ej.str()))