8
0
Files
nodejs-electron/chromium-98-EnumTable-crash.patch
Bruno Pitrus 27bbbd6d17 Accepting request 1059202 from home:dziobian:gulgul-ultron:19
- Update to 22.0.2
  * ABI break: NODE_MODULE_VERSION is now 110. Native modules may need recompiling
  * Chromium to 108.0.5359.179
  * Node v16.17.1
  * V8 v10.8
  * Added WebContents input-event event.
  * Deprecated BrowserWindow scroll-touch-* events.
  * The deprecated new-window event has been removed.
  * Added contextBridge.exposeInIsolatedWorld(worldId, key, api) to expose
    an API to an isolatedWorld within a renderer from a preload script.
  * Added webContents.close() method.
  * Added new UtilityProcess API to launch chromium child process with node integration.
  * Added new WebContents event content-bounds-updated.
  * Added support for navigator.mediaDevices.getDisplayMedia via a new
    session handler, ses.setDisplayMediaRequestHandler.
  * Added support for serialPort.forget() as well as a new event
    serial-port-revoked emitted when a given origin is revoked.
- Drop patches applied upstream
  * argument_spec-missing-isnan-isinf.patch
  * chromium-103.0.5060.53-python3-do-not-use-deprecated-mode-U.patch
  * content_language_parser-missing-string.patch
  * gtk_ui_platform_stub-incomplete-type-LinuxInputMethodContext.patch
  * node-system-libs.patch
  * pending_beacon_dispatcher-virtual-functions-cannot-be-constexpr.patch
  * std_lib_extras-missing-intptr_t.patch
  * system-abseil-missing-shims.patch
- Re-add electron_serial_delegate-ambiguous-Observer.patch due to upstream reintroducing the invalid code
- Add patches to fix build errors
  * chromium-108-abseil-shims.patch
  * crashpad-elf_image_reader-ProgramHeaderTableSpecific-expected-unqualified-id.patch
  * document_loader-private-DecodedBodyData.patch
  * first_party_set_parser-IssueWithMetadata-no-known-conversion.patch
  * print_dialog_gtk-no-kEnableOopPrintDriversJobPrint.patch
  * swiftshader-LLVMJIT-AddressSanitizerPass-dead-code-remove.patch
- Conditionally reverse upstream changes to fix build with old harfbuzz
  * harfbuzz-replace-chromium-scoped-type.patch
- Switch to bundled libjxl on Fedora 36 due to system version being too old

OBS-URL: https://build.opensuse.org/request/show/1059202
OBS-URL: https://build.opensuse.org/package/show/devel:languages:nodejs/nodejs-electron?expand=0&rev=57
2023-01-18 06:07:26 +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/media_router/common/providers/cast/channel/enum_table.h
+++ b/components/media_router/common/providers/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()))