summaryrefslogtreecommitdiffstats
path: root/meta/recipes-sato/webkit/webkitgtk/49a19c49c6de8af74e521f36cb43e6c1ec2e391c.patch
diff options
context:
space:
mode:
Diffstat (limited to 'meta/recipes-sato/webkit/webkitgtk/49a19c49c6de8af74e521f36cb43e6c1ec2e391c.patch')
-rw-r--r--meta/recipes-sato/webkit/webkitgtk/49a19c49c6de8af74e521f36cb43e6c1ec2e391c.patch155
1 files changed, 0 insertions, 155 deletions
diff --git a/meta/recipes-sato/webkit/webkitgtk/49a19c49c6de8af74e521f36cb43e6c1ec2e391c.patch b/meta/recipes-sato/webkit/webkitgtk/49a19c49c6de8af74e521f36cb43e6c1ec2e391c.patch
deleted file mode 100644
index ef70361c55..0000000000
--- a/meta/recipes-sato/webkit/webkitgtk/49a19c49c6de8af74e521f36cb43e6c1ec2e391c.patch
+++ /dev/null
@@ -1,155 +0,0 @@
-From 49a19c49c6de8af74e521f36cb43e6c1ec2e391c Mon Sep 17 00:00:00 2001
-From: Ross Kirsling <ross.kirsling@sony.com>
-Date: Tue, 13 Apr 2021 02:04:15 +0000
-Subject: [PATCH] ICU 69 deprecates ubrk_safeClone in favor of ubrk_clone
- https://bugs.webkit.org/show_bug.cgi?id=224093
-
-Reviewed by Yusuke Suzuki.
-
-In a shining example of "disappointing library practices", ICU 69 deprecates ubrk_safeClone in favor of
-a new *draft* API ubrk_clone, meaning that no function with this functionality is exposed by default.
-
-This patch introduces a function cloneUBreakIterator to abstract over this change; however, since we need to:
-
- 1. confine the effects of disabling U_HIDE_DRAFT_API to a non-unified implementation file
- 2. still be able to include ubrk.h from IntlSegmenter.h to instantiate ICUDeleter<ubrk_close> (*not* `clone`!)
-
-...the new helper function is introduced in a *headerless* implementation file, IntlWorkaround.cpp.
-
-* JavaScriptCore.xcodeproj/project.pbxproj:
-* Sources.txt:
-* runtime/IntlSegmenter.cpp:
-(JSC::IntlSegmenter::segment const):
-* runtime/IntlSegmenter.h:
-* runtime/IntlSegments.cpp:
-(JSC::IntlSegments::createSegmentIterator):
-* runtime/IntlWorkaround.cpp: Added.
-(JSC::cloneUBreakIterator):
-
-
-Canonical link: https://commits.webkit.org/236421@main
-git-svn-id: https://svn.webkit.org/repository/webkit/trunk@275856 268f45cc-cd09-0410-ab3c-d52691b4dbfc
-
-Upstream-Status: Backport
-Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
----
- Source/JavaScriptCore/ChangeLog | 27 ++++++++++
- .../JavaScriptCore.xcodeproj/project.pbxproj | 16 +++---
- Source/JavaScriptCore/Sources.txt | 1 +
- .../JavaScriptCore/runtime/IntlSegmenter.cpp | 2 +-
- Source/JavaScriptCore/runtime/IntlSegmenter.h | 4 ++
- .../JavaScriptCore/runtime/IntlSegments.cpp | 2 +-
- .../JavaScriptCore/runtime/IntlWorkaround.cpp | 53 +++++++++++++++++++
- 7 files changed, 97 insertions(+), 8 deletions(-)
- create mode 100644 Source/JavaScriptCore/runtime/IntlWorkaround.cpp
-
-diff --git a/Source/JavaScriptCore/Sources.txt b/Source/JavaScriptCore/Sources.txt
-index 28b5b83632b9..b6492dfdcb75 100644
---- a/Source/JavaScriptCore/Sources.txt
-+++ b/Source/JavaScriptCore/Sources.txt
-@@ -849,6 +849,7 @@ runtime/IntlSegmenterConstructor.cpp
- runtime/IntlSegmenterPrototype.cpp
- runtime/IntlSegments.cpp
- runtime/IntlSegmentsPrototype.cpp
-+runtime/IntlWorkaround.cpp @no-unify // Confine U_HIDE_DRAFT_API's effect to this file.
- runtime/IteratorOperations.cpp
- runtime/IteratorPrototype.cpp
- runtime/JSArray.cpp
-diff --git a/Source/JavaScriptCore/runtime/IntlSegmenter.cpp b/Source/JavaScriptCore/runtime/IntlSegmenter.cpp
-index 2ad74f94bbe8..93c9b2032847 100644
---- a/Source/JavaScriptCore/runtime/IntlSegmenter.cpp
-+++ b/Source/JavaScriptCore/runtime/IntlSegmenter.cpp
-@@ -125,7 +125,7 @@ JSValue IntlSegmenter::segment(JSGlobalObject* globalObject, JSValue stringValue
- auto upconvertedCharacters = Box<Vector<UChar>>::create(string.charactersWithoutNullTermination());
-
- UErrorCode status = U_ZERO_ERROR;
-- auto segmenter = std::unique_ptr<UBreakIterator, UBreakIteratorDeleter>(ubrk_safeClone(m_segmenter.get(), nullptr, nullptr, &status));
-+ auto segmenter = std::unique_ptr<UBreakIterator, UBreakIteratorDeleter>(cloneUBreakIterator(m_segmenter.get(), &status));
- if (U_FAILURE(status)) {
- throwTypeError(globalObject, scope, "failed to initialize Segments"_s);
- return { };
-diff --git a/Source/JavaScriptCore/runtime/IntlSegmenter.h b/Source/JavaScriptCore/runtime/IntlSegmenter.h
-index cd0f426c4897..a5239575a9f3 100644
---- a/Source/JavaScriptCore/runtime/IntlSegmenter.h
-+++ b/Source/JavaScriptCore/runtime/IntlSegmenter.h
-@@ -75,4 +75,8 @@ class IntlSegmenter final : public JSNonFinalObject {
- Granularity m_granularity { Granularity::Grapheme };
- };
-
-+// Abstraction to call ubrk_safeClone or ubrk_clone depending on ICU version.
-+// This is implemented in IntlWorkaround.cpp in order to confine draft API visibility.
-+UBreakIterator* cloneUBreakIterator(const UBreakIterator*, UErrorCode*);
-+
- } // namespace JSC
-diff --git a/Source/JavaScriptCore/runtime/IntlSegments.cpp b/Source/JavaScriptCore/runtime/IntlSegments.cpp
-index b6aba32fb822..8b81791e4133 100644
---- a/Source/JavaScriptCore/runtime/IntlSegments.cpp
-+++ b/Source/JavaScriptCore/runtime/IntlSegments.cpp
-@@ -100,7 +100,7 @@ JSObject* IntlSegments::createSegmentIterator(JSGlobalObject* globalObject)
- auto scope = DECLARE_THROW_SCOPE(vm);
-
- UErrorCode status = U_ZERO_ERROR;
-- auto segmenter = std::unique_ptr<UBreakIterator, UBreakIteratorDeleter>(ubrk_safeClone(m_segmenter.get(), nullptr, nullptr, &status));
-+ auto segmenter = std::unique_ptr<UBreakIterator, UBreakIteratorDeleter>(cloneUBreakIterator(m_segmenter.get(), &status));
- if (U_FAILURE(status)) {
- throwTypeError(globalObject, scope, "failed to initialize SegmentIterator"_s);
- return nullptr;
-diff --git a/Source/JavaScriptCore/runtime/IntlWorkaround.cpp b/Source/JavaScriptCore/runtime/IntlWorkaround.cpp
-new file mode 100644
-index 000000000000..8d820857ec22
---- /dev/null
-+++ b/Source/JavaScriptCore/runtime/IntlWorkaround.cpp
-@@ -0,0 +1,53 @@
-+/*
-+ * Copyright (C) 2021 Sony Interactive Entertainment Inc.
-+ *
-+ * Redistribution and use in source and binary forms, with or without
-+ * modification, are permitted provided that the following conditions
-+ * are met:
-+ * 1. Redistributions of source code must retain the above copyright
-+ * notice, this list of conditions and the following disclaimer.
-+ * 2. Redistributions in binary form must reproduce the above copyright
-+ * notice, this list of conditions and the following disclaimer in the
-+ * documentation and/or other materials provided with the distribution.
-+ *
-+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
-+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
-+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
-+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
-+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
-+ * THE POSSIBILITY OF SUCH DAMAGE.
-+ */
-+
-+#include "config.h"
-+
-+#include <unicode/uvernum.h>
-+
-+// ICU 69 introduces draft API ubrk_clone and deprecates ubrk_safeClone.
-+#if U_ICU_VERSION_MAJOR_NUM >= 69
-+#define HAVE_ICU_UBRK_CLONE 1
-+#endif
-+
-+#if defined(U_HIDE_DRAFT_API)
-+#undef U_HIDE_DRAFT_API
-+#endif
-+#include <unicode/ubrk.h>
-+
-+namespace JSC {
-+
-+UBreakIterator* cloneUBreakIterator(const UBreakIterator*, UErrorCode*);
-+
-+UBreakIterator* cloneUBreakIterator(const UBreakIterator* iterator, UErrorCode* status)
-+{
-+#if HAVE(ICU_UBRK_CLONE)
-+ return ubrk_clone(iterator, status);
-+#else
-+ return ubrk_safeClone(iterator, nullptr, nullptr, status);
-+#endif
-+}
-+
-+} // namespace JSC