Projects
Extra
chromium-ffmpeg-extra
chromium-93-FormForest-constexpr.patch
Sign Up
Log In
Username
Password
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File chromium-93-FormForest-constexpr.patch of Package chromium-ffmpeg-extra (Revision 18)
Currently displaying revision
18
,
Show latest
From 802150d7be94e5317b257df545d55ce5b007ae65 Mon Sep 17 00:00:00 2001 From: Jose Dapena Paz <jdapena@igalia.com> Date: Tue, 20 Jul 2021 18:50:11 +0000 Subject: [PATCH] libstdc++: do not use unique_ptr bool() operator in a constexpr in form_forest.h Fix build breakage in GCC, because of calling non constexpr functions from a constexpr function. In this case, libstdc++ unique_ptr bool() operator is not constexpr, so it cannot be used inside CompareByFrameToken. An example of build breakage caused by this: ../../components/autofill/content/browser/form_forest.h:157:21: error: call to non-‘constexpr’ function ‘std::unique_ptr<_Tp, _Dp>::operator bool() const [with _Tp = autofill::internal::FormForest::FrameData; _Dp = std::default_delete<autofill::internal::FormForest::FrameData>]’ 157 | return f && g ? f->frame_token < g->frame_token : f.get() < g.get(); | ^ Bug: 957519 Change-Id: I3c49559084fe58886a03520729873b7c4ac89bbf Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3041050 Commit-Queue: Dominic Battré <battre@chromium.org> Reviewed-by: Dominic Battré <battre@chromium.org> Cr-Commit-Position: refs/heads/master@{#903595} --- diff --git a/components/autofill/content/browser/form_forest.h b/components/autofill/content/browser/form_forest.h index c89a8eb..f414ab8 100644 --- a/components/autofill/content/browser/form_forest.h +++ b/components/autofill/content/browser/form_forest.h @@ -152,16 +152,16 @@ // used by FrameData sets. struct CompareByFrameToken { using is_transparent = void; - constexpr bool operator()(const std::unique_ptr<FrameData>& f, - const std::unique_ptr<FrameData>& g) const { + bool operator()(const std::unique_ptr<FrameData>& f, + const std::unique_ptr<FrameData>& g) const { return f && g ? f->frame_token < g->frame_token : f.get() < g.get(); } - constexpr bool operator()(const std::unique_ptr<FrameData>& f, - const LocalFrameToken& g) const { + bool operator()(const std::unique_ptr<FrameData>& f, + const LocalFrameToken& g) const { return f ? f->frame_token < g : true; } - constexpr bool operator()(const LocalFrameToken& f, - const std::unique_ptr<FrameData>& g) const { + bool operator()(const LocalFrameToken& f, + const std::unique_ptr<FrameData>& g) const { return g ? f < g->frame_token : false; } };
Locations
Projects
Search
Status Monitor
Help
Open Build Service
OBS Manuals
API Documentation
OBS Portal
Reporting a Bug
Contact
Mailing List
Forums
Chat (IRC)
Twitter
Open Build Service (OBS)
is an
openSUSE project
.